JS switch语句用法详解

处理多个条件分支取决于相同的表达式,并且条件分支的数量在 3 个以上,就要考虑使用 switch 语句了。

下面是 switch 语句的基本语法:

switch ([表达式]) {
    case [预估值1]:
        [分支语句]
        break;
    case [预估值2]:
        [分支语句]
        break;
    case [预估值3]:
        [分支语句]
        break;
    ...
    case [预估值 n]:
        [分支语句]
        break;
    default:
        [分支语句]
        break;
}

在这里,[表达式]通常是一个变量,但也可以是其他任何能提供返回值的成分。[预估值1][预估值n]则都是程序员预测[表达式]可能会返回的值。

在该语句被执行时,程序会拿这些预估值去一一比对[表达式]返回的实际值,如果存在匹配的预估值,就执行该值之后的所有语句。

请注意,这里说的所有语句是指匹配预估值后面所有分支的语句。如果我们只想执行它当前所在分支的[分支语句],就必须在该[分支语句]后面加上一个 break 跳转语句,跳出 switch 语句的执行。

如果程序没有找到任何匹配的预估值,就会执行由关键字 default 标记的分支。和 if 语句中的 else 分支一样,这里的 default 分支也是可选的。

如果程序员觉得没有必要,也可以不设置这一分支。在这种情况下,如果程序没有找到匹配的预估值,switch 语句就什么也会不做。

说得更具体一点,整个 switch 语句的执行步骤可细分为以下几步:

  • 对 switch 语句的[表达式]进行求值,并记录结果。
  • 进入第一个 case 分支,将预估值与步骤 1 的结果进行比对。
  • 如果步骤 2 中的比对结果为 true,则执行该 case 分支后面的“所有代码”。
  • 在相关 case 分支中的语句执行完成之后,如果遇到 break 语句就直接退出 switch 语句。
  • 如果步骤 2 中的比对结果为 false,就进入下一个 case 分支中,重复步骤 2~5 中的操作。
  • 如果直到最后一个 case 分支的比对结果依然为 false,就执行 default 分支后面的代码。
  • 如果 default 分支不存在,就直接退出 switch 语句。

下面,我们通过一个具体的例子来演示一下 switch 语句的用法。

switch 这个单词的其中一个含义是交换机,这就让人联想到了拨打电话的原理。接下来,我们就用 switch 语句来模拟一个只能给 4 个人打电话的电话交换机:

let number = 1002;
switch (number) {
    case 1001:
        console.log('张三');
        break;
    case 1002:
        console.log('李四');
        break;
    case 1003:
        console.log('王五');
        break;
    case 1004:
        console.log('赵六');
        break;
    default:
        console.log('你拨打的是空号!');
        break;
}

执行上述代码然后查看当 number 的值分别为 1001、1002、1003、1004 和其他任意数字时的执行结果。

number 的值为 1002 和 1005 时的结果如图所示。

图片[1]|JS switch语句用法详解

除此之外,也可以将其中任意一个或几个 break 语句注释掉,看看程序的执行结果与之前有何不同。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏
分享
评论 抢沙发
HarryPotter的头像|艾奇编程网

昵称

取消
昵称表情