【问题标题】:C++ The if statement is still true even when only one condition is metC++ if 语句在只满足一个条件时仍然为真
【发布时间】:2021-06-20 17:35:02
【问题描述】:

我正在用 c++ 创建一个井字游戏程序,并且几乎完成了它,我遇到的问题是游戏何时需要以平局结束。我创建了一个if-statement 来检查何时选择了特定的组合,即使只满足一个条件,它也会发现它是正确的。

这是代码...

//takes the users selections and sees if all spots are filled in without a match.
if((b1== "O" || "X") && (b2 == "O" || "X") && (b3 == "O" || "X")){
        cout << "The game ended in a tie.";
      // Flip = 3 ends the game in a tie.
        flip = 3;
    }


例如...当我将 `b1` 更改为 `"O"` 或 `"X"` 时,游戏以平局结束,即使 `b2` 和 `b3` 仍然是空的。

【问题讨论】:

  • (b1== "O" || "X") -> (b1 == "O" || b1 == "X")
  • if((b1== "O" || "X") -- 我打赌你不会在你拥有的任何 C++ 阅读材料中看到类似这样的if 条件。所以这应该让你怀疑这是错误的。这就是学习 C++ 时的危险——如果你去“做你自己的事”而不是你正在学习的东西,你最终会使用有效但错误的代码。

标签: c++ if-statement operators tic-tac-toe tie


【解决方案1】:

条件:

b1== "O" || "X"

计算为:

(b1=="O") || "X"

这总是正确的。你可能想要:

(b1=="O" || b1=="X")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    相关资源
    最近更新 更多