public class Switch3 { /**
* @param args
*/
final static short x=2; public static void main(String[] args) {
//final static short x=2;
for(int z=0;z<3;z++){
switch(z){
case x:
System.out.println(0);
case x-1:
System.out.println(1);
case x-2:
System.out.println(2);
}
} }}
答案是212012谁能解释下为什么?谢谢
* @param args
*/
final static short x=2; public static void main(String[] args) {
//final static short x=2;
for(int z=0;z<3;z++){
switch(z){
case x:
System.out.println(0);
case x-1:
System.out.println(1);
case x-2:
System.out.println(2);
}
} }}
答案是212012谁能解释下为什么?谢谢
你少了break语句。
应该在每条打印语句后面加 break;
首先 定义了一个全局常量final static short x=2;
然后是循环for(int z=0;z <3;z++){
首先第一次循环这时为0
执行代码case x-2:
System.out.println(2); 原因是x是2,2-2 = 0所以执行这句,其它的一样就一样了,因为没有break所以下条语句会打印1 2,在执行一次循环执行0 1 2