具有三元运算符和大于(>)符号的If条件

本文关键字:符号 If 条件 大于 运算符 三元 | 更新日期: 2023-09-27 18:07:32

我对下面这段代码感到困惑

bool i_am = true;
int he_is= 0;
if ((!i_am? false : he_is> 0))
    Console.WriteLine("Condition is true.....");

我已经用i_am和he_is的不同可能性测试了所有可能的方法来理解它,但仍然无法找到逻辑。

尝试删除一组大括号"()",它产生不同的输出。牙套的工作也令人困惑!为什么会这样?

我是c#的初学者,有人可以帮助我在这个条件语句中的代码流吗?

具有三元运算符和大于(>)符号的If条件

if条件以一种奇怪的形式表示,但我认为它等于:

if (i_am && he_is > 0)

如果我们逐条分析:

!i_am ? false : he_is > 0

等于输入:

if (!i_am) //The ! operator means "NOT", so its like saying if(i_am = false), while the default if(i_am) would be equal to if(i_am = true)
{
     return false;
}
else 
{
     return he_is > 0; //he_is = 0, so 0 > 0 will return false.
}

我不太确定是哪一部分让你们困惑了,所以我先假设一下。

"??"操作称为空合并操作符。如果操作数不为空,则返回左操作数;否则返回右操作数

明白了吗?