这个问题在这里已有答案:
class New{
public static void main(String args[]){
int x=1;
switch(x){
default : System.out.print("default");
case 1 : System.out.print(1);
case 2 : System.out.print(2);
}
}
}
当我使用break关键字时,此代码正常工作。但我不知道为什么这不能正常工作。有人可以向我解释代码吗?
switch
语句跳转到匹配的case
,并继续从那里处理直到它看到break.
由于该代码中没有break
s,它从case 1
开始,输出1,然后继续case 2
并输出2.虽然它很少见,有时这个“落到下一个case
”是你真正想要的。但通常,你希望break
阻止它。
如果你把它移到最后,它会说"default"
:
class New {
public static void main(String args[]){
int x=1;
switch(x){
case 1 : System.out.print(1);
case 2 : System.out.print(2);
default : System.out.print("default");
}
}
}
输出
12default
同样,如果你将x
设置为2
,它将跳过case 1
:
class New {
public static void main(String args[]){
int x=2; // <===
switch(x){
case 1 : System.out.print(1);
case 2 : System.out.print(2);
default : System.out.print("default");
}
}
}
输出
2default