Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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

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循环_Java_Loops_While Loop - Fatal编程技术网

Java无止境while循环

Java无止境while循环,java,loops,while-loop,Java,Loops,While Loop,好吧,我对Java完全是个傻瓜,所以如果这是一个愚蠢的问题,我深表歉意。 我设置了一个while循环,如下所示: do { //quiz questions, lose a life when you get one wrong } while (livesRemain > 0) 然而,当你失去所有生命时,循环不会结束,即使所有生命都失去了,循环也会继续。我是否会使用其他方法,而不是while或do-while,以在达到某个条件时结束 问题是这样的: System.out.pri

好吧,我对Java完全是个傻瓜,所以如果这是一个愚蠢的问题,我深表歉意。 我设置了一个while循环,如下所示:

do {
  //quiz questions, lose a life when you get one wrong
} while (livesRemain > 0) 
然而,当你失去所有生命时,循环不会结束,即使所有生命都失去了,循环也会继续。我是否会使用其他方法,而不是while或do-while,以在达到某个条件时结束

问题是这样的:

 System.out.print(question1) 
    if (guess == 1) {
    System.out.print("Correct")
    score++;
    } else {
    livesRemain--;
}

当你到达测验结束时,它会打印你的分数,如果你低于0,分数将变成负数。

你应该尝试以下方法:

do {
      if(wrong) 
        livesRemain--;
} while (livesRemain > 0) 

您应该尝试以下方法:

do {
      if(wrong) 
        livesRemain--;
} while (livesRemain > 0) 

循环未结束的原因:

  • 当您在do while循环中时,只要条件满足(即
    liveRemaining>0
    ),它就会一直在循环中
  • 变量
    livesRemaining
    在循环外递减
  • 因此,
    livesRemaining
    始终大于0,因为您没有在循环中的任何位置更新它
  • 结果循环没有结束

我是否会使用其他方法,而不是while或do-while,以在达到某个条件时结束

问题不在于选择合适的循环。该问题是由终止条件未更新引起的。要解决此问题,请将代码放入循环中,以便满足终止条件

do{
    //Ask question..
    if(guess == 1)
        System.out.println("Correct");
    else
        livesRemain--;     //Update livesRemain
}while(livesRemain > 0);   //Keeping asking questions till lives == 0   

循环未结束的原因:

  • 当您在do while循环中时,只要条件满足(即
    liveRemaining>0
    ),它就会一直在循环中
  • 变量
    livesRemaining
    在循环外递减
  • 因此,
    livesRemaining
    始终大于0,因为您没有在循环中的任何位置更新它
  • 结果循环没有结束

我是否会使用其他方法,而不是while或do-while,以在达到某个条件时结束

问题不在于选择合适的循环。该问题是由终止条件未更新引起的。要解决此问题,请将代码放入循环中,以便满足终止条件

do{
    //Ask question..
    if(guess == 1)
        System.out.println("Correct");
    else
        livesRemain--;     //Update livesRemain
}while(livesRemain > 0);   //Keeping asking questions till lives == 0   

好。。。您忘记了循环体中最重要的部分:更改变量
livesRemain
的语句。也许它不在那里?如果你想让我们发现你代码中的错误,请发布代码。这段代码看起来是正确的。你能分享一下失去生命的真实代码吗?那里好像出了什么问题。
while
-循环看起来不错。你确定
livesRemain
实际上是递减的吗?可能存在两个同名的变量。虽然没有代码很难说,但我100%肯定你的循环没有问题。也不需要使用其他类型的循环。宇宙中循环没有结束的唯一原因是因为
livesRemain
仍然大于0。。。您忘记了循环体中最重要的部分:更改变量
livesRemain
的语句。也许它不在那里?如果你想让我们发现你代码中的错误,请发布代码。这段代码看起来是正确的。你能分享一下失去生命的真实代码吗?那里好像出了什么问题。
while
-循环看起来不错。你确定
livesRemain
实际上是递减的吗?可能存在两个同名的变量。虽然没有代码很难说,但我100%肯定你的循环没有问题。也不需要使用其他类型的循环。循环没有结束的唯一原因是
livesRemain
仍然大于0。