符號'?'是什麼意思?和「:」是否在回覆聲明中表示?返回語句語法
public boolean isItBigger(BigInteger num1, Long num2) {
return num1 == BigInteger.ONE || num2.intValue() > 0 ? true : false;
}
另外我想我已經看到他們在if語句。
符號'?'是什麼意思?和「:」是否在回覆聲明中表示?返回語句語法
public boolean isItBigger(BigInteger num1, Long num2) {
return num1 == BigInteger.ONE || num2.intValue() > 0 ? true : false;
}
另外我想我已經看到他們在if語句。
使用?
和:
是Java的ternary conditional operator(JLS 15.25)。表達
aBoolean ? expr1 : expr2
的結果是expr1
如果aBoolean
是true
,否則它是expr2
。
在這種情況下,它可以離開,因爲這是不必要的:
return num1 == BigInteger.ONE || num2.intValue() > 0;
我現在明白了,你說得對, FALS最後的表達。感謝所有人的迴應。 – Blackmore
這是一個ternary operator。以下是等價
if (x == y)
x = 2;
else
x = 3;
和
x = (x == y) ? 2 : 3;
你的示例代碼是愚蠢不過。首先他們檢查表達式是否爲真。那麼,如果是這樣,他們將返回true。他們可能只是以及返回表達式本身的結果,就像這樣:
return num1 == BigInteger.ONE || num2.intValue() > 0;
這被稱爲條件/三元運算符
boolean-expression ? do-this-if-true : else-do-this
它縮短的
if (boolean-expression) {
do-this
} else{
do-this
}
形式是相同的作爲'返回(num1 == BigInteger.ONE || num2.intValue()> 0);' – assylias
現在我明白了,謝謝大家的迴應:) – Blackmore