求大虾帮我解释下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的分支都走一遍^_^