【问题标题】:what does "this.x = x < 0? 0 : x; this.y = y < 0? 0 : y;" mean? [duplicate]“this.x = x < 0?0:x;this.y = y < 0?0:y;”是什么意思?意思是? [复制]
【发布时间】:2014-11-06 11:58:20
【问题描述】:

我不知道这是什么意思:

this.x = x < 0 ? 0 : x;
this.y = y < 0 ? 0 : y;

我找不到这些运算符的含义,任何帮助将不胜感激!

【问题讨论】:

  • 寻找三元运算....

标签: java


【解决方案1】:

是的。 java中的Terinary (or Conditional) Operator。 if 和 else 条件的简写。

代码this.x = x &lt; 0? 0 : x;相当于

if (x<0) {
    this.x = 0
} else{
    this.x =x
}

【讨论】:

  • +1.. 虽然 Jon Skeet 更喜欢 Conditional operator 而不是 ternery。 :P
  • @TheLostMind 甚至我更喜欢你的评论;)
  • @SlodgeMonster JLS 然而,将其称为 条件运算符,所以我会说它是 Java 中的正式名称。
  • @SlodgeMonster 如果您指的是 Jon Skeet,那就太糟糕了。如果你指的是我,我不打扰:)
【解决方案2】:

在这种情况下:

this.x = x < 0? 0 : x;

这意味着x的值取决于条件(问号x &lt; 0之前的那个),x的值是第一个( : 之前的值,即0)如果条件评估为真,否则为第二个值(: 之后的值,即x 本身)。

此外,如果 x 的值为负数,则其值等于 0,除此之外,该值是 x 本身.

【讨论】:

    【解决方案3】:

    条件运算符 (?:) 根据布尔表达式的值返回两个值之一。

    语法:condition ? first_expression : second_expression;

    this.x = x < 0? 0 : x;
    this.y = y < 0? 0 : y;
    

    表示如果 x 所以x的取值取决于条件。

    参考?: Operator

    希望对您有所帮助!

    【讨论】:

      【解决方案4】:

      它是简写的条件运算符。

      声明 int n = x &gt; 0 ? x : 0 如果x &gt; 0 返回真,则将n 设置为x。否则,n 将设置为 0

      【讨论】:

        【解决方案5】:

        称为三元运算符。

        (condition) ? [if true]
                    : [if false]
        

        在你的情况下:

        this.x = x < 0? 0 : x;
        this.y = y < 0? 0 : y;
        
        • 如果 x 小于 0,则赋值为 0,否则赋值
        • 如果 y 小于 0,则赋值为 0,否则赋值

        【讨论】:

          【解决方案6】:

          意思是:

          if (x < 0) {
                  this.x = 0;
              } else {
                  this.x = x;
              }
          

          y; 也一样

          【讨论】:

            【解决方案7】:

            您的班级有一个名为x 的字段。 this.x 用于明确引用该字段:如果您的范围内有本地 x,则需要这样做。

            x &lt; 0 ? 0 : x; 是一个利用三元运算符的习语。它的计算结果不小于零。

            【讨论】:

              【解决方案8】:

              这是三元 if 运算符,基本上等于:

              if(x < 0){
                  this.x = 0;
              else
                  this.x = x;
              

              y 也是如此

              它的语法是condition ? if_part : else_part;

              【讨论】:

                【解决方案9】:

                意思是

                if (x < 0) {
                   this.x = 0;
                } else {
                   this.x = x;
                }
                

                这基本上意味着this.x = Math.max(0,x)

                【讨论】:

                  猜你喜欢
                  • 2014-01-07
                  • 2018-09-25
                  • 2015-03-20
                  • 2018-06-05
                  • 2018-09-10
                  • 2022-12-01
                  • 2020-09-24
                  • 1970-01-01
                  • 2016-07-18
                  相关资源
                  最近更新 更多