本帖最后由 李斌 于 2012-5-20 00:20 编辑
以前一直对于Switch语句的执行过程很模糊,今天用代码检测一下了 终于弄得很清楚了,与大家分享一下~
class SwitchTest
{
public static void main(String[] args)
{
int x=2,y=3;
switch(x)
{
case 5:
y++;
System.out.println("case 5="+y);
default:
y++;
System.out.println("default="+y);
break;
//case 2:
//y++;
//System.out.println("case 2="+y);
//break;
case 3:
y++;
System.out.println("case 3="+y);
//break;
case 4:
y++;
System.out.println("case 4="+y);
}
System.out.println(y);
}
}
/*
注意:case的执行顺序问题
表达式为x=2 case可能值分别为 2、3、4
第一步:先找是否有符合表达式x=2的case语句
|——————————有,则执行case2的语句,并且就不执行default语句!
第二步: |--------case2语句中没有break语句,执行完该句就执行其他下一个(注意是下一句,它不往回执行前一case语句)case语句直到break或者}为止。
|--------case2语句中有break语句,执行完该句就跳出循环。
|———————————没有,则执行default语句
|--------default语句中没有break语句,则在执行完该句就执行其他下一句(注意是下一句)case语句直到break或者}为止。
|--------default语句有break语句,则在执行完该句就跳出循环。
*/
|