Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java while(true)测试的条件是什么?什么时候是真是假?_Java_Loops_While Loop - Fatal编程技术网

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

Java while(true)测试的条件是什么?什么时候是真是假?,java,loops,while-loop,Java,Loops,While Loop,我不明白为什么有人会使用 while(true) { //do something } 而不是 boolean condition = true; while(condition == true) { //do something } 后者非常容易理解,而前者则不然 那么,while(true)检查什么条件?while(true)何时为真,何时为假 while(true)何时为真,何时为假 这永远是真的,从来都不是假的 有些人使用while(true)循环,然后在某个条件为tru

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

while(true) {
   //do something
}
而不是

boolean condition = true;
while(condition == true) {
   //do something
}
后者非常容易理解,而前者则不然

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

while(true)何时为真,何时为假

这永远是真的,从来都不是假的


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

而(true)始终为true。循环语句一直在执行。如果必须中断循环,我们必须使用break语句。

条件==true
也将返回一个布尔值,该布尔值为“true”。因此直接使用该布尔值而不是所有布尔值。

而(true)
循环当然将始终迭代。您必须使用
break
,或
System.exit()
,或可能是
return
,手动中断

while(condition==true)
将为true,而
condition
true
。您可以通过设置
条件=false
使其为false

至少在(条件==true)时,我永远不会使用
。相反,只需使用
while(condition)
。这就足够了。

,而(true)
用于无限循环。它们将永远循环,因为
true
总是
true
它们通常在您必须执行某些操作直到满足特定条件时使用。然后使用
break
语句退出

while(true) {
  //attempt to satisfy some condition

  if (satisfied) {
    break;
  }
}

虽然我们永远不知道什么时候会遇到我们需要的情况。我们也可以有无限的for循环

for(;;) {//Code here}
  • 列表项
  • 虽然(正确): 陈述 如果(条件): 打破 这是python中唯一的工作 在java中,您可以出于同样的目的编写这样的代码

    而(1==1) { 标准。。。
    }下面是一个真实的例子。当用户输入无法解析为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);
            }
        }
    }
    

    有没有可能是假的?@Gregg1989,请让我澄清一下。你是在问,有没有什么方法可以让真变假?@davmac是的。
    while(true)
    循环是否会返回false而不执行?@Gregg1989,while循环从不“返回”任何东西,无论是true还是false。只要条件保持不变,它就会反复检查其条件并执行其主体。只有当条件变为false时,while循环才会停止执行。在
    while(true)
    循环中,条件为
    true
    <在我所知道的任何宇宙中,code>true
    从来都不是
    false
    。先生,如果你在玩拖拉,那就玩得很好。“在我所知道的任何宇宙中,真的从来都不是错的”-也许在使用perl时除外。我不太清楚perl.old视频游戏编程101!我不明白为什么有人会使用
    while(condition==true){
    而不是
    while(condition){
    有时循环的退出条件是复杂的,例如在一个服务器中,期望不断等待并处理输入,直到它收到关闭信号。在这种情况下,
    while(true)
    (或其同义词,
    for(;;)
    )有时会被使用,当退出条件最终出现时,会执行
    中断
    。这个问题似乎离题了,因为它毫无意义。它似乎不是问题所在的特定程序语言的答案。请尝试用Java表述一个可能的答案。