Java:计算税

时间:2012-11-30 21:48:29

标签: java bluej

我正在编写一个计算所得税的计划,根据您的个人收入增加税额。我继续在“退税”一行中收到错误“可变税可能尚未初始化”但我不确定为什么。到目前为止,这是我的代码:

import java.util.Scanner;  //Needed for the Scanner Class
/**
 * Write a description of class IncomeTax here.
 * @author 
 * 11/30/2012
 * The IncomeTax class determines how much tax you owe based on taxable income.
 */
 /**
 * The getTax returns the tax for the income.
 */
public double getTax() {
    double tax;
    if (income <10000.0) {
        tax = 0.10;
    }
    else {
        if (income > 10001.0 && income < 30000.0) {
            tax = 0.15;
        }
        else {
            if (income > 30001.0 && income < 60000.0) {
                tax = 0.25;
            }
            else {
                if (income > 60001.0 && income < 130000.0) {
                    tax = 0.28;
                }
                else {
                    if (income > 130001.0 && income < 250000.0) {
                        tax = 0.33;
                    }
                    else {
                        if (income > 250001.0) {
                            tax = 0.35;
                        }
                    }
                }
            }
        }
   }
   return tax;
}


/** 
 * The constructor accepts an argument for the income field.
 */
public IncomeTax(int i)
{
  income = i;
}
/**
 * The setIncome method accepts an argument for the income field.
 */
public void SetIncome(int i) {
    income = i;
}
/**
 * The getIncome method returns the income field.
 */
public int getIncome() {
    return income;
}

我还没有完成,我仍然需要为用户编写代码以实际输入他们的信息进行计算,但我不想在没有先修复退税税的情况下再进一步。

4 个答案:

答案 0 :(得分:3)

double tax;

您需要初始化局部变量。

示例:

double tax=0.0;

答案 1 :(得分:3)

您需要初始化tax

double tax = 0.0;

答案 2 :(得分:1)

简短回答

由于您可能无法通过任何if条件,因此无法保证设置tax。使用:

double tax = 0.10;

长答案

你有很多冗余代码。你可以通过这样做删除很多:

public static double getTax(double income)
{
  double tax = 0.10;
  if (income > 250000.0) {
    tax = 0.35;
  } else if(income > 130000.0) {
    tax = 0.33;
  } else if(income > 60000.0) {
    tax = 0.28;
  } else if(income > 30000.0) {
    tax = 0.25;
  } else if(income > 10000.0) {
    tax = 0.15;
  }
  return tax;
}

这样您就不需要检查不可能的事情,并且使用else if代码不会每次都缩进。干杯!此外,通过传递参数并创建函数static,如果需要,您可以让自己在其他地方使用该函数。

答案 3 :(得分:0)

是的,您需要按照其他答案中的描述初始化变量。或者,如果您希望tax能够为null,则应使用java对象而不是primitive。

Double tax = null;