記号「?」は何を意味しますか? および ':' は、return ステートメントで意味しますか?
public boolean isItBigger(BigInteger num1, Long num2) {
return num1 == BigInteger.ONE || num2.intValue() > 0 ? true : false;
}
また、ifステートメントでそれらを見たことがあると思います。
記号「?」は何を意味しますか? および ':' は、return ステートメントで意味しますか?
public boolean isItBigger(BigInteger num1, Long num2) {
return num1 == BigInteger.ONE || num2.intValue() > 0 ? true : false;
}
また、ifステートメントでそれらを見たことがあると思います。
?
andの使用:
は、Java の三項条件演算子(JLS 15.25) です。式の結果
aBoolean ? expr1 : expr2
であるexpr1
場合aBoolean
はtrue
、そうでない場合はですexpr2
。
この場合、不要なので省略できます。
return num1 == BigInteger.ONE || num2.intValue() > 0;
三項演算子です。以下は同等です
if (x == y)
x = 2;
else
x = 3;
と
x = (x == y) ? 2 : 3;
ただし、コード例はばかげています。最初に、式が true と評価されるかどうかを確認しています。一致する場合は、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
}