【问题标题】:C# - basic if statement inquiry - can't find the answerC# - 基本 if 语句查询 - 找不到答案
【发布时间】:2016-04-04 12:44:40
【问题描述】:

这可能已经回答了,但我不知道如何提出问题,因此找不到过去的答案。

所以我想做的是这样的:(如果检查相同的更多变量)

if ((aa && bb && cc) == 1)
    {
       win = 1;
    }

正确的语法是什么?

非常感谢

【问题讨论】:

  • aabbcc 到底是什么?你要检查什么?能不能说的具体点?
  • @SonerGönül 我认为他的意思是检查所有三个变量是否都等于 1。
  • 你能再解释一下吗?
  • 你的意思是if (aa == 1 && bb == 1 && cc == 1)?你可以用文字来解释你真正想要什么。

标签: c# if-statement


【解决方案1】:

如果您有很多变量,您还可以构建一个值数组并使用 IEnumerable.All 方法来验证它们都是 1。更具可读性,IMO。

if (new[] { aa, bb, cc}.All(x => x == 1))

【讨论】:

  • 这么简单的任务非常复杂,或者?
  • 不,他提到他想检查更多变量。所以这种方法会更容易
【解决方案2】:
if (aa == 1 && bb == 1 && cc == 1)
{
   win = 1;
}

【讨论】:

  • @cFrozenDeath Answers can be only code if the code is self explanatory。看到家伙如何重写提问者的代码以使用正确的语法,我不明白这将是一个糟糕的答案。
  • @MageXy 他应该提到为什么需要对每个变量进行检查,以及为什么不能使用 OP 发布的代码来完成检查
  • @cFrozenDeath OP 已经知道他的代码在语法上不正确——这是他的问题。他特别要求正确的语法。这个答案提供了该信息。
【解决方案3】:

恐怕你必须走很长的路, 没有简单的简洁方法来检查 if 语句中的多个 var 是否具有相同的值。

代码:

If (aa == 1 && bb == 1 && cc == 1)
{
    // Code here.
}

希望这会有所帮助。

【讨论】:

    【解决方案4】:

    您可以单独检查每个变量,例如:

    if (aa == 1 && bb == 1 && cc == 1)
    {
        // do something
    }
    

    如果您知道您将始终检查 1 的值,您可能希望将其声明为常量。

    public const int ExpectedValue= 1;
    if (aa == ExpectedValue&& bb == ExpectedValue&& cc == ExpectedValue)
    {
        // do something
    }
    

    【讨论】:

    【解决方案5】:

    变量的数据类型确实会影响您可以使用if 语句执行的操作。


    布尔值

    如果它们是boolean 值并且你想知道它们什么时候是一个,你可以去:

    if(aa && bb && cc) { }
    

    因为每个变量不是一就是零,如果其中一个是假的,那么整个陈述就是假的。只有当一切合而为一时,这句话才是正确的。


    整数

    如果你想看看

    if((aa && bb && cc) == Value) {}
    

    你可以把它们相乘,看看它们是否等于Value的立方。

    if(aa*bb*cc == Value*Value*Value) {}
    

    所以,如果Value 等于一,那么你会得到:

    if(aa*bb*cc == 1) {}
    

    最佳方式

    最好的方法是单独检查每个变量是否等于Value

    if(aa == Value && bb == Value && cc == Value) {}
    

    这是因为 && 运算符需要两个 bools 然后返回一个 boolean 值。因此,当您使用aa && bb && cc 时,您实际上是在将这些值“合并”在一起以产生boolean 值。通过首先将每个变量与 Value 进行比较,您将为每个变量创建一个 boolean 值,然后将其“与”在一起以产生与我提出的第一个解决方案相似的结果。


    希望这会有所帮助!

    【讨论】:

      【解决方案6】:

      你可以使用这段代码,非常简单易行

      if ( aa == 1 && bb == 2 && cc == 3)
      {
          // your codes
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-20
        • 2014-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-03
        相关资源
        最近更新 更多