我正在编写一个计算所得税的计划,根据您的个人收入增加税额。我继续在“退税”一行中收到错误“可变税可能尚未初始化”但我不确定为什么。到目前为止,这是我的代码:
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;
}
我还没有完成,我仍然需要为用户编写代码以实际输入他们的信息进行计算,但我不想在没有先修复退税税的情况下再进一步。
答案 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;