Java 为什么这个代码打印12而不是1?
当我使用break关键字时,这段代码可以正常工作。 但我不知道为什么这不能正常工作。 有人能给我解释一下代码吗?switch语句跳转到匹配的case,并从那里继续处理,直到看到中断。由于该代码中没有中断,它从案例1开始,输出1,然后继续案例2和输出2。虽然这种情况很少见,但有时这种情况下,你真正想要的是下一种情况。但通常情况下,你需要休息来阻止它 如果你把它移到最后,它也会说默认:Java 为什么这个代码打印12而不是1?,java,switch-statement,case,Java,Switch Statement,Case,当我使用break关键字时,这段代码可以正常工作。 但我不知道为什么这不能正常工作。 有人能给我解释一下代码吗?switch语句跳转到匹配的case,并从那里继续处理,直到看到中断。由于该代码中没有中断,它从案例1开始,输出1,然后继续案例2和输出2。虽然这种情况很少见,但有时这种情况下,你真正想要的是下一种情况。但通常情况下,你需要休息来阻止它 如果你把它移到最后,它也会说默认: class New{ public static void main(String args[]){
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);
}
}
}
输出
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");
}
}
}
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");
}
}
}
输出
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");
}
}
}
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");
}
}
}
在调试器中逐步完成它。使用调试器不是一项高级技能,学习调试器基本上是每个初学者在Hello,World之后应该做的下一件事。但是x=1,对吗?那么为什么要执行案例2呢?@thisuratenuka-正如我前面所说的,没有中断,它会从案例1开始继续执行代码。它继续到案例2,在我后面的示例中,进入默认状态。这就是为什么如果你不希望这种情况发生,你需要休息,否则执行会继续到下一个案例。虽然这种情况很少见,但有时这种情况下,你真正想要的是下一种情况。