Java无止境while循环
好吧,我对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
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
- 因此,
始终大于0,因为您没有在循环中的任何位置更新它livesRemaining
- 结果循环没有结束
我是否会使用其他方法,而不是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
- 因此,
始终大于0,因为您没有在循环中的任何位置更新它livesRemaining
- 结果循环没有结束
我是否会使用其他方法,而不是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。