JavaScript教程:switch语句

概述

switch语句的功能类似 if…eles if…else 语句

switch语句格式

switch(表达式) {
    case 常量值1:
        语句体1;
        break;
    case 常量值2:
        语句体2;
        break;
    ...
    default: 
        语句体n+1;
        break;
}

执行流程:

  1. 计算出表达式的值
  2. 将值 和case后面的常量 比较,如果相同,就会执行相应的 语句体1,遇到break就跳出switch语句
  3. 如果 和case后面常量都不相同,就会执行 default语句体 部分,然后结束switch语句

例子:

//定义变量,判断是星期几
int weekday = 6;
//switch语句实现选择
switch(weekday) {
    case 1:
        System.out.println("星期一");
        break;
    case 2:
        System.out.println("星期二");
        break;
    case 3:
        System.out.println("星期三");
        break;
    case 4:
        System.out.println("星期四");
        break;
    case 5:
        System.out.println("星期五");
        break;
    case 6:
        System.out.println("星期六");
        break;
    case 7:
        System.out.println("星期日");
        break;
    default:
        System.out.println("你输入的数字有误");
        break;
}

case的穿透性

在switch语句中,如果case的后面 不写break,将出现 穿透现象,也就是 不会再判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。

int i = 5;
switch (i){
    case 0:
        System.out.println("执行case0");
        break;
    case 5:
        System.out.println("执行case5");
    case 10:
        System.out.println("执行case10");
    default: System.out.println("执行default");
}

执行结果如下:

执行case5
执行case10
执行default

解释:
上述程序中,执行case5后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接 运行完整体switch。

注意:
由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。


原文出处:/show_1IX3A5OJxVzp.html