我无法弄清楚我的计算机科学类(class)的“剪刀石头布”游戏代码出了什么问题。我遇到问题的部分是:
while((userscore < 4) || (compscore < 4)){
if(userhand.equalsIgnoreCase("R") && comphandint == 0){
JOptionPane.showMessageDialog(null, "Rock vs. Rock: \nYou Tie");
}
else if(userhand.equalsIgnoreCase("R") && comphandint == 1){
compscore += 1;
JOptionPane.showMessageDialog(null, "Rock vs. Paper: \nYou Loose");
...
}
该循环有效,但它会循环直到 userscore 和 compscore 都等于 4。我希望它循环直到两个命中中只有一个达到 4。有什么想法吗?
最佳答案
您应该使用&&
(和)而不是||
(或)。
一个简单的逻辑表向我们展示了两者的结果;
| AND | OR
value1 | true | true
value2 | false | false
result | false | true
(这是为了其他人以后发现这个问题的好处)
如您所见,使用 OR 时,如果其中一个值低于 4,则将返回 true
并进入循环。使用 AND 时,只要其中一个值是 4 或以上,就会返回 false
并且循环将会停止 - 如您所愿。
希望这对您以及将来发现此问题的任何其他人有所帮助。
关于java - While 循环似乎忽略了 "or"运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26132378/