2014-09-12 257 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

相關問題