0

符号是什么?和':'在return语句中是什么意思?

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

我也认为我在 if 语句中看到过它们。

4

3 回答 3

4

使用?and:是 Java 的三元条件运算符(JLS 15.25)。表达式的结果

aBoolean ? expr1 : expr2

expr1如果aBooleantrue,否则是expr2

在这种情况下,它可以被忽略,因为它是不必要的:

return num1 == BigInteger.ONE || num2.intValue() > 0;
于 2013-04-03T18:05:42.747 回答
1

它是一个三元运算符。以下是等价的

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

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

您的示例代码虽然很愚蠢。首先,他们检查表达式的计算结果是否为真。然后,如果确实如此,它们将返回 true。他们也可以返回表达式本身的结果,如下所示:

return num1 == BigInteger.ONE || num2.intValue() > 0;
于 2013-04-03T18:06:01.683 回答
0

这称为条件/三元运算符

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

它是的缩写形式

if (boolean-expression) {
do-this
} else{
do-this
}
于 2013-04-03T18:06:13.393 回答