添加两个数字而不是组合

时间:2018-01-23 11:49:29

标签: java algorithm math ide multiplication

我正在尝试创建一个程序,用户可以在其中输入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));
    }
}

6 个答案:

答案 0 :(得分:8)

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

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

相反,请添加两个int值:

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

并显示result

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

答案 1 :(得分:6)

这里:

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

选项窗格会返回字符串,您似乎可以理解,然后继续:

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

但是您在字符串结果中使用了+运算符:

... +(num1+num2));

+表示字符串连接

因此,您需要添加数字,而不是“添加”字符串,如:

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

int sum = int1FromUser + int2FromUser;

这就是全部。

(我可以自由地使用稍微更好的命名 - 请记住使用某些关于他们指向的东西的含义的变量名称)

答案 2 :(得分:5)

您使用的是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);
}

答案 3 :(得分:3)

使用+Integer时,还会使用

int,并且它还用于连接两个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)));

答案 4 :(得分:3)

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

此外,您还为两个输入使用相同的整数变量。

那应该是

int ans1=0;
int ans2=0;

...

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

最后

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

答案 5 :(得分:1)

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

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);