如果/ Else通过JOptionPane计算

时间:2012-02-12 23:22:40

标签: java if-statement joptionpane

我试图通过JOption Message窗口计算这个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);
}

}

4 个答案:

答案 0 :(得分:1)

monthlyIncome中没有值,您将输入解析为number1。这会在monthlyIncome处留下0,使税收变量也为0

请注意,描述实际发生的事情与您预期发生的事情是有帮助的,否则我们不得不通过“未进行任何计算”来猜测您的意思。当然,你正在计算 - 问题是它们不是你想要的。

答案 1 :(得分:1)

您还没有将monthlyIncome设置为基于通过“提示”返回的number1的任何内容。

答案 2 :(得分:0)

我假设您要将number1分配给monthlyIncome,不是吗?到目前为止,您还没有使用number1,而monthlyIncome在用户输入数字后仍然会显示值0

请注意,monthlyIncomelong变量,因此分配number1将需要强制转换并可能导致精确损失(如果用户输入分数),尽管这些可能是在你的情况下可以接受。

答案 3 :(得分:0)

将您的代码更改为

double monthlyIncome = Double.parseDouble( income );

因为在if-else声明中您使用的是monthlyIncome,但在原始代码中,您将值指定为number1