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
相关产品推荐
相关产品推荐

