case语句中要带break,不然switch找到了对应的case入口,后面的case(包括default)选择都被忽略,全部直接执行语句体,直到遇到break或switch结束
案例源代码:
public class CaseDemo {
public static void main(String[] args){
int x = 2 ;
switch(x){
case 1:
System.out.println("case 1");
//break;
case 2:
System.out.println("case 2");
//break;
case 3:
System.out.println("case 3");
break;
default:
System.out.println("default");
break;
}
}
}
输出:
case 2
case 3
分析:可见switch找到了case2并执行到case3(case3有break)结束,发生case穿透