三元运算符会导致编译错误

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

我正在尝试根据算术运算符的输入打印结果

double n1= 45;
double n2= 9;

double result = (mathOperator == '/') ? n1/n2 : 
                (mathOperator == '+') ? n1+n2 : 
                (mathOperator == '-') ? n1-n2 : 
                (mathOperator == '*') ? n1*n2;

System.out.println(result);

但是我在三元行末尾收到一条带有分号的错误消息

任何人都可以帮我理解,我错在哪里吗?

java conditional-operator
1个回答
2
投票

三元运算符如何工作

(condition) ? (do when condition is true) : (do when condition is false);

现在,在您的代码中,所有其他运算符都满足上述条件,但对于乘法,缺少

else
部分。

所以你可以这样结束你的状况

mathOperator =='*'? n1*n2 : 0;

更好的方法是

mathOperator =='*'? n1*n2 : Double.NaN;
© www.soinside.com 2019 - 2024. All rights reserved.