是什么" this.x = x< 0? 0:x; this.y = y< 0? 0:y;"意思?

时间:2014-09-12 10:19:23

标签: java

我不知道这是什么意思:

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

我找不到这些操作符的含义,非常感谢任何帮助!

9 个答案:

答案 0 :(得分:7)

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

代码this.x = x < 0? 0 : x;等同于

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

答案 1 :(得分:2)

您的班级有一个名为x的字段。 this.x用于明确指代该字段:如果您的范围中有本地x,则需要执行此操作。

x < 0 ? 0 : x;是一个利用三元运算符的习语。评估结果不低于零。

答案 2 :(得分:2)

在这种情况下:

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

这意味着 x 的值取决于条件(问号x < 0之前的那个), x 的值是第一个(如果条件的计算结果为:,则为0之前的值),否则为第二个值(:之后的值x本身)。

此外, x 的值等于 0 如果是负数,除此之外,值 x 本身

答案 3 :(得分:1)

这意味着

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

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

答案 4 :(得分:1)

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

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

y

同样如此

,其语法为condition ? if_part : else_part;

答案 5 :(得分:1)

意味着:

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

y;

相同

答案 6 :(得分:1)

条件运算符(?:)会返回两个值中的一个,具体取决于布尔表达式的值。

语法:condition ? first_expression : second_expression;

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

表示如果x <0,如果为真,那么它将返回0,否则返回x 因此x的值取决于条件。

参考?: Operator

希望这可以帮到你!

答案 7 :(得分:1)

它被称为三元运营商。

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

在你的情况下:

this.x = x < 0? 0 : x;
this.y = y < 0? 0 : y;
  • 如果x小于0,则指定0,否则指定其值
  • 如果y小于0,则指定0,否则指定其值

答案 8 :(得分:1)

这是速记条件运算符。

声明 int n = x > 0 ? x : 0 如果n返回true,则会将x设置为x > 0。否则,n设置为0