【问题标题】:Compare Char in an Array比较数组中的字符
【发布时间】:2019-10-13 13:36:39
【问题描述】:

对于一些家庭作业,我需要制作井字游戏。 我制作游戏没有问题,但现在我需要控制玩家是否获胜。为此,我需要比较数组中存在的一些 Char。 所以我用“if”设置了一个测试,但它向我发送了一个错误(Visual Studio 中的 CS0019),说我无法比较 char 并期望得到 bool 输出。 我该如何规避呢?

if ((casesMorpion[0, 0]) != (casesMorpion[1, 0]) != (casesMorpion[2, 0]))
{
  V1 = true;
}

【问题讨论】:

    标签: c# arrays char


    【解决方案1】:

    您不能将(casesMorpion[0, 0]) != (casesMorpion[1, 0]) != (casesMorpion[2, 0]) 放在一行中并期望它能够工作。

    您收到错误是因为(casesMorpion[0, 0]) != (casesMorpion[1, 0])bool,并且您尝试将其与(casesMorpion[2, 0]) 进行比较,char

    你应该把它分成两个条件,一个逻辑和&&

    if (casesMorpion[0, 0] != casesMorpion[1, 0] && casesMorpion[1, 0] != (casesMorpion[2, 0]))
    {
        V1 = true;
    }
    

    或其他任何东西,因为我不知道您要测试的确切内容。

    【讨论】:

    • 这在编程上很好。只是我认为两个比较操作都必须与 OR 而不是 AND
    【解决方案2】:

    我同意@Corentin Pane 的回答。他比我早几秒就回答了

    下面的一些事情可能会有所帮助

    var expectedChar = casesMorpion[0, 0]; 
    if ((expectedChar != casesMorpion[1, 0]) || (expectedChar != casesMorpion[2, 0]))
    {
        V1 = true;
    }
    

    != 两个操作数之间的运算给出一个布尔值。所以现在它会变成 bool != char 这会导致编译错误。

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 2011-05-19
      相关资源
      最近更新 更多