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 的代码,直到遇到breakswitch 结束。
  • 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 更清晰和简洁的选择,特别是当有许多可能的匹配值时。