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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:36:03