2014-09-12 254 views

回答

7

是的。在java中表示Terinary (or Conditional) Operator。如果还有其他条件的话。

相当于

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

+1 ..尽管* Jon Skeet *更喜欢*条件操作符*而不是* ternery *。 :P – TheLostMind 2014-09-12 10:23:17

+0

@TheLostMind即使我喜欢你的评论;) – 2014-09-12 10:24:54

+2

@SlodgeMonster [JLS](http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.25 ),但是,将它称为*条件运算符*,所以我会说它是Java中的正式名称。 – kiheru 2014-09-12 10:29:13

1

代码this.x = x < 0? 0 : x;这意味着

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

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

1

这是三元,如果运营商基本上等于:

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

同样的事情为y

其语法condition ? if_part : else_part;

2

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

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

2

在这种情况下:

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

这意味着X的值是依赖于条件(一个问号x < 0之前),的X的值是第一个(在值:之前的值是0)如果条件评估为真,否则第二个值(在:之后的值是x本身)。

而且,X的值等于0 如果它是一个负数,比该情况下的值是X本身以外。

1

这意味着:

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

同样为y;

1

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

语法:condition ? first_expression : second_expression;

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

意味着,如果X < 0,如果真,那么它将返回0,否则,返回X 所以x值是因条件而异。

参考?: Operator

希望这可以帮助你!

1

它被称为三元运算符。

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

你的情况:

this.x = x < 0? 0 : x; 
this.y = y < 0? 0 : y; 
  • 如果x小于0,分配0,否则如果y小于0的值分配
  • ,分配0,否则分配它值
1

这是速记条件运算符。

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

相关问题