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 更清晰和简洁的选择,特别是当有许多可能的匹配值时。