You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

三元运算符编译错误求助:根据算术运算符计算结果报错

三元运算符语法错误原因及修复方案

你的错误出在链式三元运算符的最后一段缺少了备选分支。

Java的三元运算符必须严格遵循 条件 ? 表达式1 : 表达式2 的完整结构——每一个?都必须对应一个:和备选表达式。你当前代码的最后一段(mathOperator == '*') ? n1*n2只定义了满足条件时的结果,却没有指定当运算符不匹配*时的处理逻辑,这违反了语法规则,所以编译器在分号位置报错。

修复方案

给最后一个三元分支补充备选逻辑即可,比如设置默认值,或者抛出异常提示无效运算符:

方案1:设置默认值(比如0.0)

double n1 = 45;
double n2 = 9;

double result = (mathOperator == '/') ? n1/n2 : 
                (mathOperator == '+') ? n1+n2 : 
                (mathOperator == '-') ? n1-n2 : 
                (mathOperator == '*') ? n1*n2 : 0.0; // 补充默认分支

System.out.println(result);

方案2:抛出异常处理无效运算符

double n1 = 45;
double n2 = 9;

double result = (mathOperator == '/') ? n1/n2 : 
                (mathOperator == '+') ? n1+n2 : 
                (mathOperator == '-') ? n1-n2 : 
                (mathOperator == '*') ? n1*n2 : 
                throw new IllegalArgumentException("无效的算术运算符");

System.out.println(result);

这样每个三元分支都保持了完整的条件?结果:备选结构,编译器就能正常编译了。

内容的提问来源于stack exchange,提问作者ImMe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:57:31