Java 通过JOptionPane进行If/Else计算

Java 通过JOptionPane进行If/Else计算,java,if-statement,joptionpane,Java,If Statement,Joptionpane,我试图通过JOption消息窗口计算这个if/else语句。提示1可以并返回名称,但我无法通过提示2获得任何计算结果。我猜我需要用我的双倍数字1做点什么,但我不太确定 提前谢谢 public static void main(String[] args) { Scanner imput = new Scanner(System.in); //ALLOW USER TO INPUT NAME AND MONTHLY INCOME long monthlyIncome = 0

我试图通过JOption消息窗口计算这个if/else语句。提示1可以并返回名称,但我无法通过提示2获得任何计算结果。我猜我需要用我的双倍数字1做点什么,但我不太确定

提前谢谢

public static void main(String[] args)
{

    Scanner imput = new Scanner(System.in);   //ALLOW USER TO INPUT NAME AND MONTHLY INCOME

    long monthlyIncome = 0;
    double newSocSecTax = 0.0;
    double oldSocSecTax = 0.0;

    String name = JOptionPane.showInputDialog( "Please enter your name: "); //PROMPT 1

    String income = JOptionPane.showInputDialog("\nPlease enter your gross monthly income:  "); //PROMPT 2
    double number1 = Double.parseDouble( income );

    if(monthlyIncome >= 110100.00)
    {
       newSocSecTax = 110100.00 * .062;
       oldSocSecTax = 106800.00 * .042;
    }
    else
    {
       if(monthlyIncome >= 106800.00)
       {
         newSocSecTax = monthlyIncome * .062;
         oldSocSecTax = 106800.00 * .042;
       }
   else
   {
       newSocSecTax = monthlyIncome * .062;
       oldSocSecTax = monthlyIncome * .042;
   }
   }


   String message = String.format( "%s, your monthly social security tax will be $%.2f." +
                                 "\nThis is an increase of $%.2f.", name, newSocSecTax, oldSocSecTax );

   JOptionPane.showMessageDialog( null, message );
   System.exit(0);
}

}您在
monthlyIncome
中没有值,您将输入解析为
number1
。这使得
monthlyIncome
位于
0
,使得税务变量也
0


请注意,描述实际发生的事情与预期发生的事情是很有帮助的,否则我们不得不猜测“没有得到任何计算”是什么意思。当然你得到的是计算结果——问题是它们不是你想要的。

你没有根据通过“提示”返回的数字1将Monthlyncome设置为任何值。

我想你应该将
number1
分配给
Monthlyncome
,不是吗?到目前为止,您没有使用
number1
monthlyIncome
在用户输入数字后仍将具有值
0

请记住,
monthlyIncome
是一个
long
变量,因此分配
number1
将需要强制转换,并可能导致精度损失(如果用户输入分数),尽管在您的情况下这些可能是可以接受的。

将代码更改为

double monthlyIncome = Double.parseDouble( income );

因为在
if else
语句中,您使用的是
monthlyIncome
,但在原始代码中,您将值分配给了
number1

,很抱歉不够清晰。我是一个编程新手(显然),我想说的是,prompt 2计算返回的是$0.00。如何获取用户输入的字符串并将其用于计算?我有double.parsedouble,但我不确定需要做什么才能正确计算用户输入。我终于找到了答案。只需要将number1改为monthlyIncome并删除顶部的monthlyIncome变量。再次为缺乏明确性表示抱歉,并感谢您的帮助。当我这样做时,表示Monthlyncome已经定义。我已经在上面将其设置为0,这样我就可以捕获用户的数据。事实上,这就成功了。我需要删除顶部的monthlyncome变量。非常感谢你的帮助。