Java四则运算程序异常:减法、乘法始终返回0.0求助
问题分析与修复方案
你的问题根源在于Calculator类中运算分支的判断字符和用户输入提示的字符不匹配:
- 程序提示用户输入
s代表减法(subtract)、m代表乘法(multiply),但你的Calculator类里,减法判断的是"b",乘法判断的是"c" - 当用户输入
s或m时,所有分支都不匹配,sum变量会保持默认的初始值0.0,所以减法和乘法始终返回0.0
修复步骤
修改Calculator类里的判断条件,把减法的"b"改成"s",乘法的"c"改成"m"即可:
public class Calculator { //variables private double num1; private double num2; private double sum; //combined method public double doMaths(double sum1, double sum2, String operation){ num1=sum1; num2=sum2; if(operation.equalsIgnoreCase("a")){ sum=num1+num2; } else if(operation.equalsIgnoreCase("s")){ // 从"b"改为"s" sum=num1-num2; } else if(operation.equalsIgnoreCase("m")){ // 从"c"改为"m" sum=num1*num2; } else if(operation.equalsIgnoreCase("d")){ sum=num1/num2; } return sum; } }
额外建议
可以在分支最后加上默认处理,避免用户输入无效字符时返回意外的0.0:
else { JOptionPane.showMessageDialog(null, "输入的运算符号无效,请输入a/s/m/d"); return Double.NaN; // 用NaN标记无效结果 }
内容的提问来源于stack exchange,提问作者SpackJarrow
相关产品推荐
相关产品推荐

