如果没有中断,Java开关运行所有用例

lymnna71  于 2023-03-16  发布在  Java
关注(0)|答案(2)|浏览(95)

我对这个例子感到困惑。如果break被删除,那么Today is SaturdayToday is Sunday都会被打印。我想知道为什么会发生这种情况。

int day = 4;
switch (day) {
  case 4:
    System.out.println("Today is Saturday");
   // break;
  case 7:
    System.out.println("Today is Sunday");
   // break;
 
}

附言:对于那些对我为什么问这么简单的问题感到惊讶的人:
有一段时间了,我正在学习Kotlin,它不需要在when表达式中添加中断,所以当Ii在一个需要在switch语句中添加中断的Java项目中工作时,它让我感到困惑。

oyjwcjzk

oyjwcjzk1#

您的问题可能与其他问题重复,但原因是Java switch中的case语句默认情况下将流到下一个case语句,除非明确提到break。为了更好地理解case语句的这种行为方式 * 原因 *,可以通过一个示例来说明这一点。假设您希望在星期一发生相同的逻辑,星期二和星期三。然后,您可以使用以下命令:

switch (day) {
    case 1:
    case 2:
    case 3:
        System.out.println("Today is Monday, Tuesday, or Wednesday");
        break;

    case 4:
        System.out.println("Today is Thursday");
        break;

    case 7:
        System.out.println("Today is Sunday");
        break;
}
wlp8pajw

wlp8pajw2#

**Break语句:**Break语句用于终止循环。当在循环中遇到break语句时,将立即终止循环。

因此,当我们在switch语句中使用break语句时,它会在这种情况下终止循环,而程序控制会在循环之后的下一个语句处继续。

对您问题的回答:当不使用break语句时,程序的控制将流经每个case,直到它到达switch块的末尾或遇到break语句。

相关问题