How do I use the conditional operator?
我是 C语言的新手,在我正在的一个示例代码中,我遇到了这样的陈述:
A = A ? B: C[0]
我只是想知道上一个语句的任务是什么,执行上述语句后的结果是什么。
它被称为ternary operator。expr ? a : b
如果expr
为 true,则返回a
,如果为 false,则返回b
。expr
可以是布尔表达式(例如x > 3
),布尔 / 变量或可转换为布尔值的任何内容(例如 int)。
int ret = expr ? a : b
等同于以下内容:
int ret;
if (expr) ret = a;
else ret = b;
三元运算符的好处是它是一个表达式,而上面是语句,你可以嵌套表达式,但不能嵌套语句。所以你可以做ret = (expr ? a : b) > 0;
作为一个额外的 tidbit,Pytn & gt;= 2.6 对于等效操作有一个稍微不同的语法:a if expr else b
。
如果A
为 true,则将B
的值分配给A
,否则为C[0]
。
?:
result = a > b ? x : y;
与此块相同:
if (a > b) {
result = x;
}
else
{
result = y;
}
它与if else
语句相同。
它可以重写为:
if ( A != 0 )
{
A = B;
}
else
{
A = C[ 0 ];
}
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(83条)