Java 使用null获取If-else的错误

Java 使用null获取If-else的错误,java,Java,我是一名Java初学者,试图让这段代码显示第二个JOptionPane,如果选择的数字是负数或0。如果选择0或负数,则第二个选项不会出现。我怀疑这与ifresult有关!=无效的我尝试过使用不同的操作数和值,并不断得到错误的操作数类型。我想坚持使用if-else语句,因为这就是我们现在在课堂上的位置 public static void calculateR() { String result = JOptionPane.showInputDialog(null,

我是一名Java初学者,试图让这段代码显示第二个JOptionPane,如果选择的数字是负数或0。如果选择0或负数,则第二个选项不会出现。我怀疑这与ifresult有关!=无效的我尝试过使用不同的操作数和值,并不断得到错误的操作数类型。我想坚持使用if-else语句,因为这就是我们现在在课堂上的位置

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的数字。如果我使用负数,第二个窗格会弹出。搞乱代码,让它发生。明白了,放一个