【问题标题】:What does val = val==0?0:1; mean? [duplicate]val = val==0?0:1; 是什么意思?意思是? [复制]
【发布时间】:2018-09-25 10:59:59
【问题描述】:

通常,我通常会看到i++;++i;。不过,这是我第一次看到这样的东西:

val = val == 0 ? 0 : 1;

什么意思?

【问题讨论】:

  • 仅供参考,您永远不应该编写这样的代码。
  • @bhspencer 这取决于。如果变量和方法命名正确,行简短易懂,是个不错的选择。
  • 除了已经正确的答案之外,我发现做 val = val == 0 ? 0 : 1; 有点矫枉过正,而不是简单地做 if(val != 0) val = 1;

标签: java


【解决方案1】:

意思是if val == 0 then set val to 0 else set val to 1

【讨论】:

  • 请仅将代码格式化为代码
  • 我刚刚输入,网站添加了``当它看到 if -> 如果你不喜欢这种格式,请与 SO 交谈
  • 没必要脾气暴躁
【解决方案2】:

这就是所谓的三元运算符,可以看成是“立即if”表达式,也就是说:

val = val == 0 ? 0 : 1;

相当于:

if (val == 0) {
    val = 0;
} else {
    val = 1;
} 

【讨论】:

    【解决方案3】:

    它使用的是三元条件运算符,看起来像

    condition ? [value if true] : [value if false].

    在这种情况下,如果val == 0,则将val设置为0;否则,将val 设置为1

    希望这会有所帮助!

    【讨论】:

      【解决方案4】:

      代码val = val==0?0:1; 是此代码的较短表示:

      if (val==0)
      {
          val = 0;
      }
      else
      {
          val = 1;
      }
      

      a?b:c的语法是:

      <condition> ? <result if true> : <result if false>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-27
        • 2014-11-06
        • 2015-03-20
        • 1970-01-01
        • 2011-11-19
        • 2011-08-23
        • 1970-01-01
        • 2015-12-30
        相关资源
        最近更新 更多