代码
function switchF() {
let key = 5;
switch (key) {
case 1, 2, 3, 4, 5:
console.log('工作日');
break;
case 6, 7:
console.log('休息日');
break;
default:
console.log('输入有误');
break;
}
}
switch
MDN
switch
语句评估一个表达式,将表达式的值与case
子句匹配,并执行与该情况相关联的语句。switch (expression) { case value1: // 当 expression 的结果与 value1 匹配时,执行此处语句 break; case value2: // 当 expression 的结果与 value2 匹配时,执行此处语句 break; ... case valueN: // 当 expression 的结果与 valueN 匹配时,执行此处语句 break; default: // 如果 expression 与上面的 value 值都不匹配,执行此处语句 break; }
expression
一个用来与case
子语句匹配的表达式。
case valueN
可选
用于匹配expression
的case
子句。如果expression
与给定的valueN
相匹配,则执行该case
子句中的语句直到该switch
语句结束或遇到一个break
。
default
可选
一个default
子句;如果给定,这条子句会在expression
的值与任一case
语句均不匹配时执行。
一个switch
语句首先会计算其expression
。然后,它将从第一个case
子句开始直到寻找到一个其表达式值与所输入的expression
的值所相等的子句(使用严格运算符 (en-US),===)并将控制权转给该子句,执行相关语句。(如果多个case
与提供的值匹配,则选择匹配的第一个case
,即使这些case
彼此间并不相等。)
如果没有case
子句相匹配,程序则会寻找那个可选的default
子句,如果找到了,将控制权交给它,执行相关语句。若没有default
子句,程序将继续执行直到switch
结束。按照惯例,default
子句是最后一个子句,不过也不需要这样做。
可选的break语句确保程序立即从相关的case
子句中跳出switch
并接着执行switch
之后的语句。若break
被省略,程序会继续执行switch
语句中的下一条语句。
break
MDN
break
语句中止当前循环,switch语句或label语句,并把程序控制流转到紧接着被中止语句后面的语句。
break [label];
中的label
是语句标签相关联的标识符。如果break
语句不在一个循环或switch语句中,则该项是必须的。
break
语句包含一个可选的标签,可允许程序摆脱一个被标记的语句。break
语句需要内嵌在引用的标签中。被标记的语句可以是任何块语句;不一定是循环语句。
break
语句不能在function
函数体中直接使用,break
语句应嵌套在要中断的当前循环、switch
或label
语句中。for (let i = 0; i < 9; i++) { if (i === 7) break; console.log(i); }