java switch的穿透现象
时间: 2023-11-24 21:48:58 浏览: 207
在Java中,switch语句是一种常见的条件语句,它可以根据不同的条件执行不同的代码块。在switch语句中,有一个特殊的现象叫做“穿透”(fall-through),它指的是当一个case分支没有break语句时,程序会继续执行下一个case分支的代码,直到遇到break语句或者switch语句结束为止。
下面是一个简单的示例,演示了switch语句的穿透现象:
```
int num = 2;
switch (num) {
case 1:
System.out.println("num is 1");
case 2:
System.out.println("num is 2");
case 3:
System.out.println("num is 3");
break;
default:
System.out.println("num is not 1, 2 or 3");
}
```
在上面的代码中,变量num的值为2,因此程序会执行第二个case分支的代码,输出“num is 2”,然后继续执行第三个case分支的代码,输出“num is 3”,最后遇到break语句结束switch语句的执行。
如果我们在第二个case分支的代码后面加上break语句,就可以避免穿透现象的发生,代码如下:
```
int num = 2;
switch (num) {
case 1:
System.out.println("num is 1");
break;
case 2:
System.out.println("num is 2");
break;
case 3:
System.out.println("num is 3");
break;
default:
System.out.println("num is not 1, 2 or 3");
}
```
这样,当变量num的值为2时,程序只会执行第二个case分支的代码,输出“num is 2”,然后结束switch语句的执行。
阅读全文