2014-02-11 4 views
-4

Я не уверен, как заставить мой код правильно вывести правильный вывод. Вот то, что я до сих порВозможно, переменная Java не была инициализирована

import java.util.Scanner; 
public class ComputeTax { 
    public static void main(String[] args) { 
     System.out.print("Taxable Income Single  Married Jointly  Married Seperate  Head of House"); 
     System.out.print("\n\n-----------------------------------------------------------------------------------"); 
     int status; 
     double income; 
     double tax = 0; 
     for(income = 50000; income <= 60000; income+=50) 
     { 
      if (status == 50000) 
      { 
       if (income <= 8350) 
        tax = income * 0.10; 
       else if (income <= 33950) 
        tax = 8350 * 0.10 + (income - 8350) * 0.15; 
       else if (income <= 82250) 
        tax = 8350 * 0.10 + (33950 - 8350) * 0.15 + 
        (income - 33950) * 0.25; 
       else if (income <= 171550) 
        tax = 8350 * 0.10 + (33950 - 8350) * 0.15 + 
        (82250 - 33950) * 0.25 + (income - 82250) * 0.28; 
       else if (income <= 372950) 
        tax = 8350 * 0.10 + (33950 - 8350) * 0.15 + 
        (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 + 
        (income - 171550) * 0.33; 
       else 
        tax = 8350 * 0.10 + (33950 - 8350) * 0.15 + 
        (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 + 
        (372950 - 171550) * 0.33 + (income - 372950) * 0.35; 
      } 
      else if (status == 1) { // Compute tax for married file jointly 
       // Left as exercise 
      } 
      else if (status == 2) { // Compute tax for married separately 
       // Left as exercise 
      } 
      else if (status == 3) { // Compute tax for head of household 
       // Left as exercise 
      } 


      // Display the result 
      System.out.println("Tax is " + (int)(tax * 100)/100.0); 
     } 
    } 
} 

Выход образца:

Taxable Income  Single  Married  Married Seperate   Head of House 
50000     8688  6665  8688      7352 
50050     8700  6673  8700      7365 
... 
59950     11175  8158  11175     9840 
60000     11188  8165  11188     9852 

Я считаю, что мой «цикл» правильно, я просто не уверен, что мои расчеты и как напечатать их все , В настоящее время я получаю сообщение об ошибке:

variable status might not have been initialized

+1

Что вопрос? Можете ли вы привести пример текущего вывода? –

+0

У меня есть ошибка прямо сейчас с моим оператором if, говорящим, что состояние переменной может быть не инициализировано – Tanner10

+4

@ Tanner10 Первая ссылка в google для «переменной не была инициализирована java» http://stackoverflow.com/questions/2448843/variable- Ошибка-not-have-was-initialized-error – sashkello

ответ

0

В вашем «для» цикла, то есть «если» заявление, используя переменное состояние целого. Вы вычисляете числовые значения для статуса, например, если status == 50000, но вы никогда не ставите значение в переменную состояния. Вы инициализировали тип, но не значение. Попробуйте ввести, например,

status = 18000; 

или что-то перед циклом for.

Надеялся я помог, Джастин

+0

спасибо justin. Я положил свой статус int = 18000 и my if (status == 50000) и он компилируется, но я не могу заставить его распечатать то, что я хочу, чтобы он выглядел на моем примере вывода. – Tanner10

+0

@ Tanner10: Не могли бы вы добавить лет ur и текущий вывод на ваш пост (ideone.com)? Кроме того, 18000 год был совершенно произвольным числом. Добавьте что-то, что на самом деле будет компилироваться с операторами if, которые у вас есть, или иметь другое выражение if, которое является неравенством, поэтому оно имеет больший диапазон. –

+0

уверен, позвольте мне сделать учетную запись – Tanner10

Смежные вопросы