我正在编写一个 Pit 评分系统,我有一段代码,如下所示:
while(highestConverted<scoreConverted||highestConverted!=scoreConverted)
无论scoreConverted 或highestConverted 的值如何,它将始终返回true 并重复其中的代码。我认为这并不重要,但使用 Integer.parseInt 从扫描仪变量转换的值或整数。我对 Java 没有太多经验,但我知道一些基础知识。
最佳答案
考虑你的代码:
while(highestConverted<scoreConverted||highestConverted!=scoreConverted)
假设 highestConverted = 5
和scoreConverted = 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/