while(true) 测试什么条件?什么时候是真的什么时候是假的?

新手上路,请多包涵

我不明白为什么有人会使用

while(true) {
   //do something
}

代替

boolean condition = true;
while(condition == true) {
   //do something
}

后者非常容易理解,而前者则不然。

那么,while(true) 检查什么条件? while(true) 什么时候为真,什么时候为假?

原文由 Gregg1989 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 776
2 个回答

while(true) 什么时候为真,什么时候为假?

它永远是真的,它永远不会是假的。

有些人使用 while(true) 循环,然后使用 break 在特定条件为真时退出它们,但这通常是非常草率的做法,不推荐。如果不使用 breakreturnSystem.exit() 或其他类似机制,它将永远循环。

原文由 Michael Berry 发布,翻译遵循 CC BY-SA 3.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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题