c# – 如何在Ternary运算符中编写多个语句?

我发布这个问题是因为我发现这类帖子没什么相似之处.
我正在学习三元运算符.
我想执行如下所示的操作:

  bool Divisible = false;
  foreach (var Number in NumberList))
  {
    var  Number = 242;
    if ((Number %= 2) | (Number %= 6))
    {
       Divisible = true;
    }
    else
    {
       Divisible = false;
    }
  }

我们可以使用这样的三元运算符来编写它:

var Divisible = (Number %= 2 | Number %= 6) ? false : true ;

但是如果在else块中有多个语句那么该怎么办?

  bool Divisible = false;
  foreach (var Number in NumberList))
  {
    var  Number = 242;
    if ((Number %= 2) | (Number %= 6))
    {
       Divisible = true;
    }
    else
    {
       Divisible = false;
       break;
    }
  }

我们如何使用多个else语句编写三元运算符?
请分享您对三元操作符的了解.

解决方法:

But if in else block there are multiple statements then what to do?

如果语句不相关,则不使用条件运算符.只需使用你已经拥有的if-else.

在你的情况下,因为你的代码需要打破当且仅当Divisible设置为false时,你就不能使用条件运算符,即使你想破解它,因为break是一个语句,而不是表达式,因此不能作为条件运算符的一部分出现.

通常,只有在根据条件决定分配两个值之一时,才使用条件运算符.除此之外,你应该使用常规的if-else结构.不要试图将条件运算符搞砸到任何决策代码中,因为你经常发现自己遇到了这样的问题.

上一篇:JavaScript运算符优先逻辑让我很困惑


下一篇:Python运算符返回整数