在学习c语言的时候,这方面就没有弄得很清楚。
下面举例说明:
int a = 2;
int b = 3;
switch (a){
default:
b++;
case 3:
b++;
case 4:
b++;
}
System.out.println("b="+b);
这段代码的特点是每一句都没有break,所以每一句都不会跳出。
首先查找2,没有对应的case,直接运行default ,b=4。
由于没有break,直接进行下一步case 3 ,使得b的值再加一,b=5 。
又没有break,再直接进行下一步case 4 ,使得b的值再加一,b=6 。
运行完这些以后已经没有下一条语句,所以跳出switch。
最终得到b的值为6 。
如果将上面的default语句放到case语句的最后面,即
switch (a){
case 3:
b++;
case 4:
b++;
default:
b++;
这会导致直接b执行最后default语句,只自加一次,便退出switch语句,使得最后的b的值为4 。