读书人

求帮小弟我解释下switch的一个有关问题

发布时间: 2012-01-02 22:40:04 作者: rapoo

求大虾帮我解释下switch的一个问题??

public class Q{
public static void main(String arg[]){
int anar[] = new int[]{1,2,3};
System.out.println(anar[1]);
int i = 9;
switch(i){
default:
System.out.println( "default ");
case 0:
System.out.println( "zero ");
break;
case 1:
System.out.println( "one ");
case 2:
System.out.println( "two ");
}
boolean b=true;
boolean b2 = true;
if (b==b2){
System.out.println( "So true ");
}
}
}
编译输出了:2 default zero so true 
我就想知道那个zero为什么也输出啊
i不是为9吗?
case里面没有相等的值 因该回直接执行默认的default后面的啊,
这是怎么回事求大虾门帮我解释下>

[解决办法]
你按照正规的方法写default 语句 由于他是最后一个所以 执行完他后 switch块就退出了啊,所以在正规的方式里default语句是不用写 break的,
而这题你的default块并没有写break, 所以又接着执行了case 0:
[解决办法]
你不加break的话,他会把每个没有break的分支都走一遍^_^

读书人网 >J2SE开发

热点推荐