帮助switch语句

时间:2011-08-09 14:32:43

标签: java switch-statement break

我对java比较新。在switch语句中,您是否必须在每个break之后添加case语句?

6 个答案:

答案 0 :(得分:7)

不,你没必要。但是,如果省略break语句,switch块中的所有剩余语句都将被执行,而不管它们正在测试的case值。

这有时会产生不希望的结果,如下面的代码所示:

switch (grade) {
    case 'A':
        System.out.println("You got an A!");
        //Notice the lack of a 'break' statement
    case 'B':
        System.out.println("You got a B!");
    case 'C':
        System.out.println("You got a C.");
    case 'D':
        System.out.println("You got a D.");
    default:
        System.out.println("You failed. :(");
}

如果您将grade变量设置为'A',那么这将是您的结果:

You got an A!
You got a B.
You got a C.
You got a D.
You failed. :(

答案 1 :(得分:5)

在每个案例之后你不必打破,但如果你不这样做,他们将相互流动。有时你想把多个案例捆绑在一起,省去休息时间。

答案 2 :(得分:3)

你做得更好。否则,下一个语句也将被执行。

switch(someNumber) {
case thisCaseMatches:
    doThat();
case thisCaseDoesNotMatch:
    shouldntExecuteYetItWillBeExecuted();
default:
    alsoWillbeExecuted();
}

答案 3 :(得分:3)

如果您未使用switch或其他操作退出return声明,则可以这样做。

答案 4 :(得分:2)

语义上是的。否则,第一个匹配的语句之后的所有case语句都将运行。

答案 5 :(得分:2)

在每个陈述之后放置休息是一个好习惯。

你没有被迫。

但是如果你没有放置break tatement,你就会级联switch语句,即可以匹配更多的条件,有时这会导致逻辑错误。

然而,有些人认为级联语句可以优化代码,有助于编写更少的代码。