从逻辑上讲,我认为答案应为0.打印输出为2。
public class Switch{
public static void main(String[] args){
int x = 3; int y = 4;
switch (x + 3) {
case 6: y = 0;
case 7: y = 1;
default: y += 1;
}
System.out.print(y);
}
}
这就是我认为代码应该运行的方式:
1)添加x + 3.答案是6.
2)案例6与答案6相关。这导致0为6的新值。
3)我们忽略案例7和默认情况,因为案例6符合需要。
4)系统打印出y的新值,即0。
这是我错的地方,因为打印出2。我的想法在哪里错了,我对转换语句的理解中缺少什么?
答案 0 :(得分:3)
一旦选择了Switch语句中的Case,代码就会从那里直接执行,这意味着它执行所有的情况。如果您不想这样,请使用Break语句:
switch (x + 3) {
case 6: y = 0; break;
case 7: y = 1; break;
default: y += 1; break;
}
答案 1 :(得分:1)
在一个switch
中,你“落入”案件,从匹配的案件开始。在这里,您输入case 6
,然后case 7
,然后default
。使用break
关键字可以阻止此行为:
switch (x + 3) {
case 6:
y = 0;
break;
case 7:
y = 1;
break;
default:
y += 1;
break;
}