class Demo12//定义一个类
{
//主函数
public static void main(String[] args)
{
show(0);//15
show(1);//14
}
public static void show(int i)
{
switch(i)
{
default:
i+=2;
case 1:
i+=1;
case 4:
i+=8;
case 2:
i+=4;
}
System.out.println("i="+i);
}
}
原因:当运行show(0)的时候,case之间与default没有顺序,先执行第一个case,没有匹配的case就执行了default,执行default之后发现没有对应的break,程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束(一般语句结束要么是遇到分号,要么是遇到大括号。)
当运行show(1)时,有匹配的case,就不执行default.但是匹配的case却没有对应的break,那么程序会继续向下执行,运行可以执行的语句,这时就不在判断case了,直到遇到break或者switch结尾结束。
最后的结果:show(0)=15; show(1)=14;
这只是抛砖引玉,希望大家都可以多多的学习! |
|