未选择案例时切换如何工作

时间:2017-07-13 20:04:39

标签: java

我在OCA Java 8考试学习指南中看到了这段代码,这让我很困惑。

int dayOfWeek = 5;
switch(dayOfWeek) {
  case 0:
    System.out.println("Sunday");
  default:
    System.out.println("Weekday");
  case 6:
    System.out.println("Saturday");
    break;
}

这本书说它打印平日和周六。

这是为什么?

我认为必须找到这个案子才能被选中,因为它未被选中,因此不会发生任何事情。

3 个答案:

答案 0 :(得分:2)

由于没有案例与dayOfWeek的值匹配,因此会执行默认案例:打印"Weekday"

由于默认案例没有break,因此也会执行其后的下一个案例,直到它到达交换结束或中断:打印"Saturday"

答案 1 :(得分:1)

简单:因为你通过案件“堕落”。如果您不想通过,则必须使用break

因此默认情况下,您执行第一次匹配后的所有案例 - 直到您点击第一个break语句。

答案 2 :(得分:0)

您可以提及您想要明确执行某些操作的案例。 否则,对于所有剩余的案例,他们将在default处理。

另外,请查看相关的Must the "default" case come last in a switch?以获取更多说明。

正如其他人也指出的那样,如果你没有放弃,那么它会经历所有剩下的情况,直到它遇到break