日期:2014-05-20  浏览次数:20688 次

关于break在Switch中的作用
public class TestSwitch {
public static void main(String[]args){
int x=8;
switch(x){
case 1:System.out.println("case 1");
break;



case 2:System.out.println("case 2");

case 3:System.out.println("case 3");

case 8:System.out.println("case 8");

case 5:case 6:case 7:
System.out.println("case 5 6 7");
}
}
}

结果:
case 8
case 5 6 7



疑问:
break已经在case 1:System.out.println("case 1");那么,应该退出整个switch语句,不应该再继续执行:

case 8:System.out.println("case 8");

case 5:case 6:case 7: System.out.println("case 5 6 7");


可是,为什么还是继续执行这两个语句呢?

本人是初学的菜鸟,请各位大仙指点。

------解决方案--------------------
貌似楼主对switch不是很理解吧?

你初始化x=8,那么你的switch语句相当于:switch(8)

必然首先执行的是 case 8 这一行,又因为case 8后面根本没有任何break语句,当然是一口气执行到底了。

------解决方案--------------------
你的x=8
所以
case 1:System.out.println("case 1");
break;
是不会执行的,
所以继续向下执行...