虽然小于或不等于不会终止

时间:2014-12-30 13:01:42

标签: java while-loop

我正在编写一个Pit评分系统,我有一段看起来像这样的代码:

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

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

1 个答案:

答案 0 :(得分:1)

考虑你的代码:

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