Java:操作数语句

时间:2015-06-16 19:42:45

标签: java operand

我在同学的代码中发现了这个陈述,我不知道这意味着什么。我无法弄清楚操作的顺序或意义。

提前致谢

返回> b? a> C ? a:c:b> C ? b:c;

6 个答案:

答案 0 :(得分:4)

这是使用ternary operator

conditionvalue1value2)如果value1为真,则评估为condition,否则为value2

嵌套的三元表达式:

return a > b ? a > c ? a : c : b > c ? b : c

相当于:

if (a > b) {
    if (a > c) {
        return a;
    } else {
        return c;
    }
} else {
    if (b > c) {
        return b;
    } else {
        return c;
    }
}

它似乎正在返回abc的最大值,因此可以更明确地写为:

return Math.max(a, Math.max(b,c));

答案 1 :(得分:1)

如果> b为真,那么如果> c为真,则为a c。如果a>> b为假,则b> c,则b b,c

答案 2 :(得分:1)

如果你在if else'中写下声明,它将如下所示:

if (a > b) {
    if (a > c) {
        return a;
    } else {
        return c;
    }
} else {
    if (b > c) {
        return b;
    } else {
        return c;
    }
}

答案 3 :(得分:0)

在Java中,这个构造(?:)被称为三元运算符。这是它的工作原理:

a=(b?c:d)

这意味着如果表达式b为真,则指定值为c,如果表达式b为假,则指定值为d。

在你的情况下

return a > b ? a > c ? a : c : b > c ? b : c;

这意味着     如果a>那么b是真的        检查是否> C。如果a> c然后返回否则返回c。     如果a>那么b是假的        检查是否b> C。如果b> c然后返回b否则返回c。 这相当于:

if (a > b) {
    if (a > c) {
        return a;
    } else 
        return c;
} else {
    if (b > c) {
        return b;
    } else 
        return c;
}

答案 4 :(得分:0)

在此处查看此问题:what-is-the-java-operator-called-and-what-does-it-do 差点就是说, 如果a>>则返回a b和a> c,否则返回c 否则,如果b> c,返回b,否则返回c。

答案 5 :(得分:0)

另一个答案是:

return a > b ? a > c ? a : c : b > c ? b : c;

手段(用括号括起来使其更具可读性):

return ((a>b) ? ((a>c)?(a):(c)) : ((b>c)?(b):(c)));

使用三元运算符,将(英语)翻译为:

如果大于b且大于c,则返回a。 如果大于b AND小于或等于c,则返回c。 如果小于或等于b AND b大于c,则返回b。 如果小于或等于b AND b小于或等于c,则返回c“。

这只是确定三元组的最大值。 你可以做一些这样简单易读的事情:

return Math.max(Math.max (a,b),c);