-1

我知道 Javaswitch case是这样设计的,但为什么在 Java 中会出现这种行为

    int x = 1;

    switch(x){
    case 1: System.out.println(1);
    case 2: System.out.println(2);
    case 3: System.out.println(3);
    default: System.out.println("default");

    }

output : 1
         2   
         3
         default

我的问题是为什么要执行案例 2 和 3?我知道我省略了 break 语句
,但x从来没有 2 或 3 但case 2仍然case 3执行?

4

4 回答 4

4

没有 break 语句,所以所有 case 都被执行

使用中断语句

switch(x){
    case 1: System.out.println(1);break;
    case 2: System.out.println(2);break;
    case 3: System.out.println(3);break;
    default: System.out.println("default");

    }
于 2013-11-10T15:47:35.043 回答
3

我知道我省略了 break 语句,但 x 从来不是 2 或 3,但 case 2 和 case 3 仍然执行?

直接来自文档

break 语句是必要的,因为没有它们,switch 块中的语句就会失败:匹配 case 标签之后的所有语句都按顺序执行,无论后续 case 标签的表达式如何,直到遇到 break 语句。

于 2013-11-10T15:48:23.280 回答
1

您需要为每种情况添加 break 语句。由于没有 break 语句,所有案例都将被执行。

于 2013-11-10T15:47:38.790 回答
0

你错过了Break陈述。

switch(x){
case 1: System.out.println(1);
break;
case 2: System.out.println(2);
break;
case 3: System.out.println(3);
break;
default: System.out.println("default");
}

检查switch 语句

break 语句是必要的,因为没有它们,switch 块中的语句就会失败:匹配 case 标签之后的所有语句都按顺序执行,无论后续 case 标签的表达式如何,直到遇到 break 语句。

于 2013-11-10T15:47:56.090 回答