添加两个数字而不是组合

Add two numbers instead of combining

我正在尝试创建一个程序,用户可以在其中输入 2 个数字,该程序将取这 2 个数字并将它们相乘以获得答案。但是,对于这个特定示例,我只是想从用户那里获取 2 个数字,我希望 Java 将它们相加。例如 1+1=2,而不是 1+1=11

我的代码:

import javax.swing.JOptionPane;

public class MultiplicationTables {

    public static void main(String args[]) {
        //declare variables

        String num1;
        String num2;
        int ans=0;

        num1=JOptionPane.showInputDialog(null,"Enter a number");
        num2=JOptionPane.showInputDialog(null,"Enter another number");

        ans=Integer.parseInt(num1);
        ans=Integer.parseInt(num2);


        JOptionPane.showMessageDialog(null,"Your answer is " + (num1+num2));
    }
}

此处:

num1=JOptionPane.showInputDialog(null,"Enter a number");
num2=JOptionPane.showInputDialog(null,"Enter another number");

选项面板returns字符串,你好像明白了什么,跟着你走:

ans=Integer.parseInt(num1);
ans=Integer.parseInt(num2);

但随后您在 字符串 结果上使用了 + 运算符:

... +(num1+num2));

但是 + 对于字符串 连接 它们。

因此,您要添加 数字 而不是 "adding" 字符串,如:

int1FromUser = Integer.parseInt(num1);
int2FromUser = Integer.parseInt(num2);

int sum = int1FromUser + int2FromUser;

仅此而已。

(我自由地使用稍微好一点的命名 - 请记住使用变量名 它们指向的东西的含义)

+是在使用Integerint时附加使用的,它也用于连接两个String。在您的情况下,num1num2String,因此它连接了结果。因此,您必须更改代码以反映以下更改:

ans = Integer.parseInt(num1);
ans += Integer.parseInt(num2); // add the result of parseInt to ans
//--^---------------------------
JOptionPane.showMessageDialog(null,"Your answer is " + ans ); // another one

或者:

JOptionPane.showMessageDialog(null,"Your answer is " + (Integer.parseInt(num1) + Integer.parseInt(num2)));

num1num2String
因此,当您编写 num1+num2 时,您会得到它们的串联结果。

事实上,您没有使用 Integer.parseInt(); 结果。

相反,添加两个 int 值:

int result = Integer.parseInt(num1) + Integer.parseInt(num2);

并显示result

JOptionPane.showMessageDialog(null,"Your answer is " + result);

你做错了。您在最后添加字符串并忽略已解析的整数。

而且你对两个输入使用相同的整数变量。

所以应该是

int ans1=0;
int ans2=0;

...

 ans1=Integer.parseInt(num1);
 ans2=Integer.parseInt(num2);

最后

JOptionPane.showMessageDialog(null,"Your answer is " +(ans1+ans2));

您正在使用 num1num2,它们是字符串而不是 ans,后者应该是您作为 int 的总和。 此外,您没有将 2 个值正确添加到 ans.

public static void main(String args[]){
    String num1 = JOptionPane.showInputDialog(null,"Enter a number");
    String num2 = JOptionPane.showInputDialog(null,"Enter another number");

    int ans = Integer.parseInt(num1);
    ans += Integer.parseInt(num2);

    JOptionPane.showMessageDialog(null,"Your answer is " + ans);
}

我建议您将方法的最后一行更改为:

JOptionPane.showMessageDialog(null,"Your answer is " + (Integer.parseInt(num1) + Integer.parseInt(num2)));

这样,您根本不需要 "ans" 变量(在您的代码中它实际上什么都不做)。相反,您可以简单地解析 int 值并将它们添加到您正在编写消息的同一行。

如果你想使用 ans,试试这个:

ans = Integer.parseInt(num1) + Integer.parseInt(num2);

然后:

JOptionPane.showMessageDialog(null,"Your answer is " + ans);