2013-04-03 213 views
0

符號'?'是什麼意思?和「:」是否在回覆聲明中表示?返回語句語法

public boolean isItBigger(BigInteger num1, Long num2) { 
     return num1 == BigInteger.ONE || num2.intValue() > 0 ? true : false; 
    } 

另外我想我已經看到他們在if語句。

+1

形式是相同的作爲'返回(num1 == BigInteger.ONE || num2.intValue()> 0);' – assylias

+0

現在我明白了,謝謝大家的迴應:) – Blackmore

回答

4

使用?:是Java的ternary conditional operator(JLS 15.25)。表達

aBoolean ? expr1 : expr2 

的結果是expr1如果aBooleantrue,否則它是expr2

在這種情況下,它可以離開,因爲這是不必要的:

return num1 == BigInteger.ONE || num2.intValue() > 0; 
+0

我現在明白了,你說得對, FALS最後的表達。感謝所有人的迴應。 – Blackmore

1

這是一個ternary operator。以下是等價

if (x == y) 
    x = 2; 
else 
    x = 3; 

x = (x == y) ? 2 : 3; 

你的示例代碼是愚蠢不過。首先他們檢查表達式是否爲真。那麼,如果是這樣,他們將返回true。他們可能只是以及返回表達式本身的結果,就像這樣:

return num1 == BigInteger.ONE || num2.intValue() > 0; 
0

這被稱爲條件/三元運算符

boolean-expression ? do-this-if-true : else-do-this 

它縮短的

if (boolean-expression) { 
do-this 
} else{ 
do-this 
}