什么是case穿透
平时我们写 switch语句时,会搭配case,break,我们有时候会忘记写break,示例:
int choice = 1;
switch (choice) {
case 1:
System.out.println("春天");
case 2:
System.out.println("夏天");
break;
default:
System.out.println("hahaha");
}
结果是什么呢?让我们输出一下
春天
夏天
下面我们来试一试利用case穿透来判断季节
int month= 1;
switch (month) {
case 1:
case 2:
case 3:
System.out.println("春天");
break;
case 4:
case 5:
case 6:
System.out.println("夏天");
break;
default:
System.out.println("hahaha");
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java.exe" "-javaagent:D:\IntelliJ IDEA\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar=63289:D:\IntelliJ IDEA\IntelliJ IDEA 2018.2.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;D:\IDEA2018\vue-first\out\production\vue-first" Test
春天
Process finished with exit code 0
完全没有问题,哈哈~~~~
如果没有一个break,会发生什么呢
public class Test {
public static void main(String[] args) {
int month= 4;
switch (month) {
case 1:
case 2:
case 3:
System.out.println("春天");
//break;
case 4:
case 5:
case 6:
System.out.println("夏天");
//break;
default:
System.out.println("hahaha");
}
}
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java.exe" "-javaagent:D:\IntelliJ IDEA\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar=63329:D:\IntelliJ IDEA\IntelliJ IDEA 2018.2.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;D:\IDEA2018\vue-first\out\production\vue-first" Test
夏天
hahaha
Process finished with exit code 0
这就是case穿透(去掉break),会自动进行下面的第二个case,直到遇到break,如果没有break,会进行到default,没有default也会结束