【问题标题】:what is the result using operator "? :" for int value对 int 值使用运算符“?:”的结果是什么
【发布时间】:2017-12-17 16:58:40
【问题描述】:

你能告诉我下面代码中 x 的值是多少并解释原因吗? 我以为 x 应该是 8,但结果显示它是 2...

int x=3;
x = 4? 2: 8;

【问题讨论】:

  • 你为什么认为是 8?这是错误的,你已经发现了。
  • 你告诉我们为什么你认为 x 会是 8!
  • 你在标题中提到的这个运算符“q”是什么?问题正文中没有提到它。
  • 2 是正确答案。因为零(0)和负值作为假,所有正值都作为真。检查答案 - stackoverflow.com/a/18840449/4813631
  • @AvanishKumar 什么时候负数计算为FALSE?负数表示非零,其计算结果为TRUE

标签: c


【解决方案1】:

这:?: 是三元运算符。语法如下:(condition) ? (if_true) : (if_false)。这意味着,如果condition 为真,此表达式将返回if_true,否则将返回if_false

因此,在您的情况下,condition4,这始终是正确的(因为如果您以二进制形式表示 4,则并非所有位都是 0),因此返回 if_true 部分.也检查this

【讨论】:

    【解决方案2】:

    它返回输出 2,因为您的条件为真,因为您正在检查 4,这在第二行代码中始终为真。如果您希望结果为 8:然后编写如下代码:

    int x=3;
    x = x==4? 2: 8;
    

    它将返回 8,因为条件为假,因为 x 的值为 3,并且您正在对照 4 检查它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 2018-08-18
      相关资源
      最近更新 更多