3.7 KiB
3.7 KiB
title | localeTitle |
---|---|
Selecting from Many Options with Switch Statements | 从带有开关语句的多个选项中进行选择 |
从带有开关语句的多个选项中进行选择
如果您有许多选项可供选择,请使用switch
语句。 switch
语句测试一个值,并且可以有许多case
语句来定义各种可能的值。从第一个匹配的case
值执行语句,直到遇到break
。
这是一个伪代码示例:
switch(num) {
case value1:
statement1;
break;
case value2:
statement2;
break;
...
case valueN:
statementN;
break;
}
多一点解释
switch语句首先计算其表达式。然后它查找第一个case
子句,其表达式的计算结果与输入表达式的结果相同(使用严格比较 ,( ===
)并将控制转移到该子句,执行相关的语句。(如果多个案例匹配)提供的值,即使案例彼此不相等,也会选择匹配的第一个案例。)
如果未找到匹配的case
子句,程序将查找可选的default
子句,如果找到,则将控制转移到该子句,执行关联的语句。如果未找到default
子句,则程序将在switch
结束后的语句处继续执行。按照惯例, default
子句是最后一个子句,但不一定如此。
与每个案例标签关联的可选break
语句确保一旦执行匹配语句,程序就会断开switch,并在switch后的语句处继续执行。如果省略break
,程序将继续执行switch
语句中的下一个语句。 1
问题说明:
编写一个switch语句,测试val
并设置以下条件的answer
:
1
- “alpha”,2
- “beta”,3
- “伽玛”,4
- “三角洲”。
提示1
请记住,使用严格相等( ===
)测试case
值。
现在尝试解决问题!
提示2
不要将_“以下条件”_视为有序列表,因为它在原始的freeCodeCamp演示中查找,但是作为值和语句,如此处所示
现在尝试解决问题!
扰流警报!
你完全确定你想要的样子吗? ...
基本代码解决方案
function caseInSwitch(val) {
var answer = "";
// Only change code below this line
switch(val) {
case 1:
return "alpha";
break;
case 2:
return "beta";
break;
case 3:
return "gamma";
break;
case 4:
return "delta";
break;
}
// Only change code above this line
return answer;
}
// Change this value to test
caseInSwitch(1);
代码说明
通常忽略的是,使用其他表达式的任何需要严格相等地测试case
值,如下所示: case === value
替代代码解决方案
function caseInSwitch(val) {
var answer = "";
// Only change code below this line
switch (val){
case 1:
answer="alpha";
break;
case 2:
answer="beta";
break;
case 3:
answer="gamma";
break;
case 4:
answer="delta";
break;
}
// Only change code above this line
return answer;
}
// Change this value to test
caseInSwitch(1);
·在repl.it上运行代码。
代码说明
由于您已经在名为answer
的函数的开头定义了一个变量,并将其定义为最后一个return语句,因此您可以为每个案例为其分配新值,并根据传递给函数的值返回预期答案。