Java程序加法模块用户输入数值被拼接而非求和问题求助
问题根因
输入的两个参数被识别为String字符串类型而非数值类型,Java中+运算符的优先级逻辑是:只要左右任意一个操作数为字符串类型,就会执行字符串拼接逻辑,而非算术加法运算,这就是你得到拼接结果的核心原因。
修复方案
- 优先使用数值类型直接接收输入
如果你用Scanner类做输入采集,直接调用对应数值类型的方法获取输入,不要用字符串类型中转:import java.util.Scanner; public class Calculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入第一个数值:"); // 接收整数用nextInt,接收小数用nextDouble double num1 = scanner.nextDouble(); System.out.print("请输入第二个数值:"); double num2 = scanner.nextDouble(); double sum = num1 + num2; System.out.println("加法结果:" + sum); scanner.close(); } } - 如果必须用字符串中转,先做类型转换
如果你有业务需要先以字符串格式存储输入值,做加法前要显式转成数值类型,同时建议增加异常捕获处理非法输入:try { double num1 = Double.parseDouble(输入的字符串1); double num2 = Double.parseDouble(输入的字符串2); double sum = num1 + num2; } catch (NumberFormatException e) { System.out.println("输入内容不是合法数值,请重新输入"); } - IntelliJ快速排查技巧
在加法执行的代码行打断点,用Debug模式运行程序,停在断点处即可查看两个输入参数的实际类型,快速确认是否存在类型不匹配问题。
内容的提问来源于stack exchange,提问作者Simone Queen
相关产品推荐
相关产品推荐

