我不明白为什么有人会使用
while(true) {
//do something
}
代替
boolean condition = true;
while(condition == true) {
//do something
}
后者非常容易理解,而前者则不然。
那么,while(true) 检查什么条件? while(true) 什么时候为真,什么时候为假?
原文由 Gregg1989 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不明白为什么有人会使用
while(true) {
//do something
}
代替
boolean condition = true;
while(condition == true) {
//do something
}
后者非常容易理解,而前者则不然。
那么,while(true) 检查什么条件? while(true) 什么时候为真,什么时候为假?
原文由 Gregg1989 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个真实世界的例子。当用户输入无法解析为 int 时,while 循环将迭代。当用户输入被解析为 int 时,循环通过返回用户输入的数字退出。
private int getNumber(String message) {
while (true) {
System.out.print(message);
String userInput = scanner.nextLine();
try {
return Integer.parseInt(userInput);
} catch (Exception ignored) {
System.out.printf("%s isn't a number!%n", userInput);
}
}
}
原文由 Johan Bekker 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.4k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
它永远是真的,它永远不会是假的。
有些人使用
while(true)
循环,然后使用break
在特定条件为真时退出它们,但这通常是非常草率的做法,不推荐。如果不使用break
、return
、System.exit()
或其他类似机制,它将永远循环。