gpt4 book ai didi

java - 为什么在Java while循环中需要使用 "break"和 "continue"语句?

转载 作者:行者123 更新时间:2023-12-01 17:55:17 28 4
gpt4 key购买 nike

当我创建一个内部包含 if/else 语句的 Java while 循环(如下所示)时,为什么需要使用 break;continue; 语句来继续代码?

我注意到,如果没有 break; 语句,它只会无限地显示 else 结果。

例如,为什么代码直接从 else 语句运行?

我知道 break 和 continue 的作用,我只需要更好地理解它们的用法。

public class TheClass {

public static void main(String[] args) {

int x = 0;
while (x <= 21){
if(x < 21){
System.out.println("You cannot drink because you are only " + x + " years old.");
x++;
continue;
}else{
System.out.println("You may drink because you are " + x + " years old.");
break;
}
}

}

}

最佳答案

Why is it Necessary To Use “break” and “continue” Statements In Java While Loops?

事实并非如此。
您需要使用breakcontinue仅当您的陈述不足以涵盖您想要应用的逻辑时。
这并不意味着它一定不好,但有时它被过度使用,没有它代码可能会更简单。
例如,看看您的代码。

1)continue很无奈。
之后if语句,循环继续。这正是 continue 所做的。 。如果您在 else 之后有一些陈述,那就有意义了语句,您不会执行,但事实并非如此。

2) break也可以删除。
你打破是因为while条件不考虑循环结束。
x < 21 , x递增,但为 x之后保留这个值,所以 while (x <= 21){永远是真的。

所以你必须想办法退出区 block while以避免无限循环。
你这样做breakelse .

您可以在没有 break 的情况下编写相同的逻辑如果while条件处理退出条件。
您可以通过引入 boolean 来做到这一点变量提供了一种在达到预期年龄时退出循环的自然方式:

int x = 0;
boolean isAgeReached = false;

while (!isAgeReached) {
if (x < 21) {
System.out.println("You cannot drink because you are only " + x + " years old.");
x++;

}
else {
System.out.println("You may drink because you are " + x + " years old.");
isAgeReached = true;
}
}

或者更简单:

int x = 0;
while (x < 21) {
System.out.println("You cannot drink because you are only " + x + " years old.");
x++;
}

System.out.println("You may drink because you are " + x + " years old.");

关于java - 为什么在Java while循环中需要使用 "break"和 "continue"语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513131/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com