swicth 语句
在JavaScript中,switch
语句允许你基于不同的情况执行不同的代码块。它是一种选择结构,用于基于不同条件执行不同的代码路径,类似于多个if-else
语句的组合。
基本语法
1switch (expression) {
2 case value1:
3 // 当expression的值等于value1时执行的代码
4 break;
5 case value2:
6 // 当expression的值等于value2时执行的代码
7 break;
8 // 可以有多个case
9 default:
10 // 如果expression的值没有匹配任何case,执行这里的代码
11}
expression
是一个要评估的表达式,它的结果将与后面的case
值进行比较。case value
是一个与expression
结果进行比较的值。如果匹配,则执行该case
下的代码块。break
语句用于终止switch
语句的执行,防止代码继续执行到下一个case
。如果没有break
,就会发生所谓的“贯穿效应”(fall through),即代码会从匹配的case
开始执行,然后顺序执行所有后续case
的代码,直到遇到break
或switch
结束。default
是一个可选的,当没有case
匹配时执行的代码块。
示例
1let fruit = "apple";
2
3switch (fruit) {
4 case "banana":
5 console.log("这是一根香蕉。");
6 break;
7 case "apple":
8 console.log("这是一个苹果。");
9 break;
10 case "mango":
11 console.log("这是一个芒果。");
12 break;
13 default:
14 console.log("未知的水果。");
15}
16
17// 输出:这是一个苹果。
在这个例子中,根据fruit
变量的值,switch
语句选择执行相应的case
代码块。
没有break的情况(贯穿效应)
1let number = 2;
2
3switch (number) {
4 case 1:
5 console.log("数字是1");
6 // 故意没有break
7 case 2:
8 console.log("数字是2");
9 break;
10 case 3:
11 console.log("数字是3");
12 break;
13 default:
14 console.log("不是1, 2或3");
15}
16
17// 输出:
18// 数字是1
19// 数字是2
在这个例子中,由于在case 1
后面没有break
,当number
的值为1时,它不仅会执行case 1
的代码块,还会继续执行case 2
的代码块,直到遇到break
。
switch
语句是处理多个条件分支时比if-else
更清晰和简洁的选择,特别是当有许多可能的匹配值时。