我对这个例子感到困惑。如果break
被删除,那么Today is Saturday
和Today 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项目中工作时,它让我感到困惑。
2条答案
按热度按时间oyjwcjzk1#
您的问题可能与其他问题重复,但原因是Java
switch
中的case
语句默认情况下将流到下一个case
语句,除非明确提到break
。为了更好地理解case语句的这种行为方式 * 原因 *,可以通过一个示例来说明这一点。假设您希望在星期一发生相同的逻辑,星期二和星期三。然后,您可以使用以下命令:wlp8pajw2#
**Break语句:**Break语句用于终止循环。当在循环中遇到break语句时,将立即终止循环。
因此,当我们在switch语句中使用break语句时,它会在这种情况下终止循环,而程序控制会在循环之后的下一个语句处继续。
对您问题的回答:当不使用break语句时,程序的控制将流经每个case,直到它到达switch块的末尾或遇到break语句。