第一个case后没有break第二个case后接break第三个case后没有break会怎么样
时间: 2023-07-11 16:36:10 浏览: 47
如果在Java中,在switch语句中第一个case后没有break,第二个case后接break,第三个case后没有break,会出现一种被称为“穿透”的情况。
具体来说,如果程序执行到第一个case语句时,满足条件并且执行了相应的代码块,但是没有遇到break语句,那么程序会继续执行第二个case语句,并且执行相应的代码块,直到遇到break语句或者执行完所有的case语句为止。同理,如果程序执行到第三个case语句时,满足条件并且执行了相应的代码块,但是没有遇到break语句,那么程序会继续执行后面的代码,直到遇到break语句或者switch语句结束。
以下是一个使用穿透的示例:
```
int num = 1;
switch (num) {
case 1:
System.out.println("num is 1");
case 2:
System.out.println("num is 2");
break;
case 3:
System.out.println("num is 3");
default:
System.out.println("num is not 1, 2 or 3");
break;
}
```
在上面的代码中,num的值是1,因此会执行第一个case语句,并输出“num is 1”。由于第一个case语句后没有break语句,所以程序会继续执行第二个case语句,并输出“num is 2”。由于第二个case语句后接了break语句,所以程序会退出switch语句。因此,最终的输出结果是“num is 1”和“num is 2”。
需要注意的是,使用穿透可能会导致代码逻辑混乱,建议在每个case后都添加上break语句,避免出现问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)