java - While 循环似乎忽略了 "or"运算符

标签 java while-loop

我无法弄清楚我的计算机科学类(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/

相关文章:

java - str1 != "NO"当 str1 为 "NO"时返回 true

c - C 中的 While 循环 - 读取直到标记变体

c++ - 重用 "rechnung()"即使它不应该

C++ 错误 : warning: multi-character character constant/atof usage

c - 如何修复此 while 循环用于填充其中的结构数组另一个结构数组

java - 我如何使用 For 循环而不是 while 来做同样的事情?

java - 颜色量化稀释纯白色

java - Android Studio 上的待办事项列表-无法解决方法

java - STS安装Java版本问题

java - (J)尽管启用了自动行排序器并使用可比数据,但表仍无法排序