If / Else вычисления через JOptionPane - PullRequest
0 голосов
/ 13 февраля 2012

Я пытаюсь вычислить это выражение if / else через окно сообщения JOption.Подсказка 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 ]

1 голос
/ 13 февраля 2012

вы не установили месячный доход в качестве значения, основанного на числе 1, возвращаемом через «подсказку».

1 голос
/ 13 февраля 2012

У вас нет значения в monthlyIncome, вы анализируете ввод в number1. Это оставляет monthlyIncome в 0, делая налоговые переменные также 0.

Обратите внимание, что полезно описывать то, что на самом деле происходит, и то, что вы ожидаете, иначе мы вынуждены угадывать, что вы имеете в виду, "не получая никаких вычислений". Конечно, вы получаете расчеты - проблема в том, что они не то, что вы хотите.

0 голосов
/ 13 февраля 2012

Измените свой код на

double monthlyIncome = Double.parseDouble( income );

потому что в if-else вы используете monthlyIncome, но в своем исходном коде вы присвоили значение number1

0 голосов
/ 13 февраля 2012

Полагаю, вы хотите присвоить number1 monthlyIncome, не так ли?Пока вы не используете number1, и monthlyIncome будет по-прежнему иметь значение 0 после того, как пользователь введет число.

Имейте в виду, что monthlyIncome - это переменная long и, следовательно,присвоение number1 потребует приведения и может привести к потерям точности (если пользователь вводит дроби), хотя они могут быть приемлемы в вашем случае.

...