可视化三元运算符[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

有人可以解释这行代码

int num1;
int num2;
int num3;
int largest = ( (num1 > num2) ? ( (num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3));

在IF-Else声明中,我可以理解

java operators ternary-operator
1个回答
1
投票

这个

int largest = ( (num1 > num2) ? ( (num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3));

相当于

int largest;
if (num1 > num2) {
    if (num1 > num3) {
       largest = num1;
    } else {
       largest = num3;
    }
} else {
    if (num2 > num3) {
       largest = num2;
    } else {
       largest = num3;
    }
}

虽然可以通过以下方式更简单地实现:

int largest = Math.max(num1, Math.max(num2, num3));
© www.soinside.com 2019 - 2024. All rights reserved.