我正在编写一个Pit评分系统,我有一段看起来像这样的代码:
while(highestConverted<scoreConverted||highestConverted!=scoreConverted)
无论scoreConverted或highestConverted的值如何,它都将始终返回true并重复其中的代码。我认为这不是真正重要的,而是使用Integer.parseInt从扫描仪变量转换的值或整数。我没有那么多Java经验,但我知道一些基础知识。
答案 0 :(得分:1)
考虑你的代码:
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
。