我已经创建了这段代码,但它的输出很奇怪。也许是因为我是Java的新手。我期望从此代码输出2 1 0
但是当我在所有break
语句之后删除case
语句时,这个奇怪的输出会显示:2 1 2 0 1 2
有人可以解释为什么会这样吗?这是我的代码:
public class Sem2 {
final static short x = 2;
public static void main(String [] args) {
for (int z=0; z < 3; z++)
{
switch (z)
{
case x: System.out.print("0 ");
case x-1: System.out.print("1 ");
case x-2: System.out.print("2 ");
}
}
}
}
答案 0 :(得分:4)
如果没有break语句,它也将继续执行其他语句。通过使用break,在匹配的情况下退出开关盒。
答案 1 :(得分:2)
需要关键字break
来突破switch语句的每种情况。
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
...每个break语句都会终止封闭的switch语句。 控制流继续切换后的第一个语句 块。 break语句是必要的,因为没有它们, switch块中的语句落在:所有语句之后 匹配的案例标签按顺序执行,无论如何 后续case标签的表达式,直到break语句为止 遇到