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关键字时,此代码可以正常工作。 但是我不知道为什么这不能正常工作。 有人可以向我解释代码吗?
答案 0 :(得分:2)
switch
语句跳转到匹配的case
,并从那里继续处理,直到看到break.
,因为该代码中没有break
,因此它从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