你能告诉我下面代码中x的值是什么,并解释原因吗? 我以为x应该是8,但结果表明它是2 ...
int x=3;
x = 4? 2: 8;
答案 0 :(得分:3)
它返回输出2,因为你的条件为真,因为你正在检查4,这在第二行代码中始终为真。如果你想把结果作为8:那么写代码如下:
int x=3;
x = x==4? 2: 8;
它将返回8,因为条件为false,因为x的值为3,而您正在检查它是否为4.
答案 1 :(得分:2)
这:?:
是三元运算符。这是语法:(condition) ? (if_true) : (if_false)
。这意味着,如果if_true
为真,则此表达式将返回condition
,否则将返回if_false
。
因此,在您的情况下,condition
为4
,它始终为真(因为如果您在二进制中表示0
,则并非所有位都为4
,因此返回if_true
部分。也请检查this。