我正在尝试创建一个程序,用户可以在其中输入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));
}
}
答案 0 :(得分:8)
num1
和num2
为String
因此,当您编写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)
您使用的是num1
和num2
字符串而不是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
。在您的情况下,num1
和num2
是String
,因此它会连接结果。因此,您必须更改代码以反映以下更改:
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);