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

Java实现用户输入两数相加而非字符串拼接的技术问题咨询

问题分析与代码修正

咱们先拆解下你代码里的核心问题:

  • 字符串拼接而非数字加法:你直接用num1+num2,但num1和num2是String类型,这会把两个字符串直接连起来(比如输入1和1就得到"11"),完全不是你想要的数字加法逻辑。
  • ans变量赋值无效:你先把num1转成int赋值给ans,紧接着又用num2转成int覆盖了ans,相当于白做了一次转换,根本没用到加法运算。

下面是修正后的代码,我标注了关键改动点:

import javax.swing.JOptionPane; 
public class MultiplicationTables { 
    public static void main(String args[]) { 
        // 声明变量
        String num1; 
        String num2; 
        int numInt1, numInt2; // 新增两个int变量,专门存转换后的数字
        int ans=0; 
        
        num1=JOptionPane.showInputDialog(null,"Enter a number"); 
        num2=JOptionPane.showInputDialog(null,"Enter another number"); 
        
        // 将输入的字符串分别转为int类型
        numInt1=Integer.parseInt(num1); 
        numInt2=Integer.parseInt(num2); 
        
        ans = numInt1 + numInt2; // 执行加法运算
        JOptionPane.showMessageDialog(null,"Your answer is " + ans); // 展示运算结果
    } 
}

如果想更简洁,也可以省去ans变量,直接在弹窗里计算:

import javax.swing.JOptionPane; 
public class MultiplicationTables { 
    public static void main(String args[]) { 
        String num1 = JOptionPane.showInputDialog(null,"Enter a number"); 
        String num2 = JOptionPane.showInputDialog(null,"Enter another number"); 
        
        int numInt1 = Integer.parseInt(num1); 
        int numInt2 = Integer.parseInt(num2); 
        
        JOptionPane.showMessageDialog(null,"Your answer is " + (numInt1 + numInt2));
    } 
}

这样修改后,输入1和1就会正确输出Your answer is 2啦。等之后要改成乘法的话,只需要把+换成*就可以轻松切换~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:04:15