我对java比较新。在switch
语句中,您是否必须在每个break
之后添加case
语句?
答案 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语句,即可以匹配更多的条件,有时这会导致逻辑错误。
然而,有些人认为级联语句可以优化代码,有助于编写更少的代码。