未选择案例时开关的工作方式



我在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;
}

这本书说它印刷工作日和星期六。

这是为什么呢?

我认为必须找到该案例才能被选中,因为它是 5 没有被选中,所以什么都不应该发生。

由于没有大小写与dayOfWeek的值匹配,因此执行默认大小写:打印"Weekday"

由于默认情况没有break,因此也会执行其后面的下一个情况,直到它到达开关结束或中断:打印"Saturday"

很简单:因为你"跌倒"了案例。如果你想不掉下来,你必须使用break.

因此,默认设置实际上是在第一个匹配项之后执行所有案例 - 直到您点击第一个break语句。

您可以提及要显式执行某些操作的情况。 否则,对于所有剩余的情况,它们将在default中处理。

另外,请检查相关的"默认"情况是否必须在交换机中排在最后?以获取更多说明。

正如其他人在这里也指出的那样,如果你不休息,那么它也会经历所有剩余的情况,直到遇到break

相关内容

最新更新