Java 我对switch语句的理解有什么问题?
从逻辑上讲,我认为答案应该是0。打印输出是2Java 我对switch语句的理解有什么问题?,java,Java,从逻辑上讲,我认为答案应该是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与答案
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是打印出来的。我的想法哪里错了,我对switch语句的理解中遗漏了什么?一旦选择了switch语句中的一个Case,代码执行就直接从那里开始,这意味着它正在执行所有的Case。如果您不想这样,请使用Break语句:
switch (x + 3) {
case 6: y = 0; break;
case 7: y = 1; break;
default: y += 1; break;
}
一旦选择了Switch语句中的一个Case,代码执行就直接从那里开始,这意味着它正在执行所有的Case。如果您不想这样,请使用Break语句:
switch (x + 3) {
case 6: y = 0; break;
case 7: y = 1; break;
default: y += 1; break;
}
在一个开关中,从匹配的一个开始,您就从箱子中跌落。在这里,输入case 6,然后输入case 7,然后输入default。使用break关键字可以防止此行为:
在一个开关中,从匹配的一个开始,您就从箱子中跌落。在这里,输入case 6,然后输入case 7,然后输入default。使用break关键字可以防止此行为:
您错过了break语句。如果您传递了-Xlint选项,javac将警告您这些错误。因为您没有任何break;,您将访问每个案例。在第一种情况下,y是0,然后是1,然后是2,这是返回值。通常IDE也会对缺少的break语句生成警告。如果传递-Xlint选项,则缺少break语句。javac将警告您这些错误。因为您没有任何break;,您将访问每个案例。在第一种情况下,y是0,然后是1,然后是2,这是返回值。通常IDE还可以为缺少break语句生成警告。没有必要为默认情况添加break。好的,我现在明白了。谢谢。@Christopherbayans如果您对答案感到满意,请将其标记为已接受。这将使导航员满意地回答这个问题。没有必要为默认情况添加中断。好的,我现在明白了。谢谢。@Christopherbayans如果您对答案感到满意,请将其标记为已接受。这将使领航员确信这个问题已得到令人满意的回答。