Java 使用null获取If-else的错误
我是一名Java初学者,试图让这段代码显示第二个JOptionPane,如果选择的数字是负数或0。如果选择0或负数,则第二个选项不会出现。我怀疑这与ifresult有关!=无效的我尝试过使用不同的操作数和值,并不断得到错误的操作数类型。我想坚持使用if-else语句,因为这就是我们现在在课堂上的位置Java 使用null获取If-else的错误,java,Java,我是一名Java初学者,试图让这段代码显示第二个JOptionPane,如果选择的数字是负数或0。如果选择0或负数,则第二个选项不会出现。我怀疑这与ifresult有关!=无效的我尝试过使用不同的操作数和值,并不断得到错误的操作数类型。我想坚持使用if-else语句,因为这就是我们现在在课堂上的位置 public static void calculateR() { String result = JOptionPane.showInputDialog(null,
public static void calculateR()
{
String result = JOptionPane.showInputDialog(null, "Enter how much money you can save annually.");
if(result != null)
{
saveAmount = Double.parseDouble(result);
}
else
{
JOptionPane.showMessageDialog(null, "Pick a number greater than 0!");
}
null不是0。还有!=不是您应该使用如下代码逻辑:
saveAmount = 0.0;
String result;
while (saveAmount <= 0) {
result = JOptionPane.showInputDialog(null, "Enter how much money you can save annually.")
if (result != null) {
saveAmount = Double.parseDouble(result);
if (saveAmount < 0.0) {
JOptionPane.showMessageDialog(null, "Pick a number greater than 0!");
}
}
}
boolean isGood;
String result = JOptionPane.showInputDialog(null, "Enter how much money you can save annually.");
if(result != null)
{
saveAmount = Double.parseDouble(result);
if (saveAmount > 0)
{
isGood = true;
}
else
{
isGood = false;
}
}
else
{
isGood = false;
}
if (isGood == false)
{
JOptionPane.showMessageDialog(null, "Pick a number greater than 0!");
}
我不知道你是否在课堂上讨论过布尔人,但我会这样做:
saveAmount = 0.0;
String result;
while (saveAmount <= 0) {
result = JOptionPane.showInputDialog(null, "Enter how much money you can save annually.")
if (result != null) {
saveAmount = Double.parseDouble(result);
if (saveAmount < 0.0) {
JOptionPane.showMessageDialog(null, "Pick a number greater than 0!");
}
}
}
boolean isGood;
String result = JOptionPane.showInputDialog(null, "Enter how much money you can save annually.");
if(result != null)
{
saveAmount = Double.parseDouble(result);
if (saveAmount > 0)
{
isGood = true;
}
else
{
isGood = false;
}
}
else
{
isGood = false;
}
if (isGood == false)
{
JOptionPane.showMessageDialog(null, "Pick a number greater than 0!");
}
我并不是这样写的,我会把第一部分压缩成
isGood = saveAmount > 0;
在一行中将isGood设置为true或false;而不是isGood==false,我会写
if (!isGood)
但我试图坚持更简单的概念
我没有足够的信息告诉您为什么会出现错误的操作数类型错误。共享堆栈跟踪。您是否希望得到ifresult!=null检查数字是否大于0?因为它不能这样做。@DiogoSantana你能给我一些关于我能在它的位置上使用什么的指导吗。我们需要你的帮助。@DiogoSantana,就像代码没有错误一样,当我输入0或负num时,它只是不显示第二个窗格,但当我更改操作数时,我得到了二进制运算符的错误操作数,我知道这是在尝试对字符串使用数学。谢谢。我把if语句放在解析之后,它就工作了。请随意将问题标记为已回答。选择一个大于0的数字!窗格没有弹出。“输入金额$”窗格将刷新,直到输入大于0的数字。如果我使用负数,第二个窗格会弹出。搞乱代码,让它发生。明白了,放一个