java - 小于或不等于不会终止

标签 java while-loop

我正在编写一个 Pit 评分系统,我有一段代码,如下所示:

while(highestConverted<scoreConverted||highestConverted!=scoreConverted)

无论scoreConverted 或highestConverted 的值如何,它将始终返回true 并重复其中的代码。我认为这并不重要,但使用 Integer.parseInt 从扫描仪变量转换的值或整数。我对 Java 没有太多经验,但我知道一些基础知识。

最佳答案

考虑你的代码:

while(highestConverted<scoreConverted||highestConverted!=scoreConverted)

假设 highestConverted = 5scoreConverted = 2 .

highestConverted <  2 =  5 < 2  -> false
highestConverted != 2 -> 5 != 2 -> true

false || true = true.

因此 while 循环将始终重复。

应该是

while(highestConverted<scoreConverted && highestConverted!=scoreConverted)

或者,更好

while(highestConverted<scoreConverted)

highestConverted<scoreConverted隐式包括highestConverted!=scoreConverted因为它将停止在 scoreConverted - 1 .

关于java - 小于或不等于不会终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706009/

相关文章:

javascript - 变量不改变值

java - 打印不同长度的数组

java - 如何在Java中实现Graphic2D对象的颜色变化?

java - 在 Java 中处理运行时异常的正确方法

java - 反过来使用 Activity 之间的 Intent - Android

c - fflush 和 while 循环

在 while 循环中比较 char

javascript - 如何将多个 php 值查询到一个 javascript 变量中

python - 如何在 Python 中的多个 while 语句之间切换

java - 无法为方法 public Abstract java.util.Optional 创建查询元模型