我不知道这是什么意思:什么是“this.x = x <0?0:x; this.y = y <0?0:y;”意思?
this.x = x < 0 ? 0 : x;
this.y = y < 0 ? 0 : y;
我找不到这些操作符的含义,任何帮助将不胜感激!
我不知道这是什么意思:什么是“this.x = x <0?0:x; this.y = y <0?0:y;”意思?
this.x = x < 0 ? 0 : x;
this.y = y < 0 ? 0 : y;
我找不到这些操作符的含义,任何帮助将不胜感激!
是的。在java中表示Terinary (or Conditional) Operator。如果还有其他条件的话。
相当于
if (x<0) {
this.x = 0
} else{
this.x =x
}
+1 ..尽管* Jon Skeet *更喜欢*条件操作符*而不是* ternery *。 :P – TheLostMind 2014-09-12 10:23:17
@TheLostMind即使我喜欢你的评论;) – 2014-09-12 10:24:54
@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
代码this.x = x < 0? 0 : x;
这意味着
if (x < 0) {
this.x = 0;
} else {
this.x = x;
}
这基本上意味着this.x = Math.max(0,x)
。
这是三元,如果运营商基本上等于:
if(x < 0){
this.x = 0;
else
this.x = x;
同样的事情为y
其语法condition ? if_part : else_part;
你的类有一个名为x
场。 this.x
用于明确指出该字段:如果您的范围中存在本地x
,则需要执行此操作。
x < 0 ? 0 : x;
是一个成语,它利用了三元运算符。它的评估结果不低于零。
在这种情况下:
this.x = x < 0? 0 : x;
这意味着X的值是依赖于条件(一个问号x < 0
之前),的X的值是第一个(在值:
之前的值是0
)如果条件评估为真,否则第二个值(在:
之后的值是x
本身)。
而且,X的值等于0 如果它是一个负数,比该情况下的值是X本身以外。
这意味着:
if (x < 0) {
this.x = 0;
} else {
this.x = x;
}
同样为y;
的条件运算符(:)返回取决于布尔表达式的值的两个值中的一个。
语法:condition ? first_expression : second_expression;
this.x = x < 0? 0 : x;
this.y = y < 0? 0 : y;
意味着,如果X < 0,如果真,那么它将返回0,否则,返回X 所以x
值是因条件而异。
参考?: Operator。
希望这可以帮助你!
它被称为三元运算符。
(condition) ? [if true]
: [if false]
你的情况:
this.x = x < 0? 0 : x;
this.y = y < 0? 0 : y;
这是速记条件运算符。
声明 int n = x > 0 ? x : 0
将设置n
到x
如果x > 0
返回true。否则,n
设置为0
。
寻找三元操作.... – 2014-09-12 10:20:31