我不知道這是什麼意思:什麼是「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