我试图让我的方法工作。 我们应该创建一个税级,必须使用一种方法。 (非常不同寻常。我知道。)
我不认为我的变量是正确的,或者我没有在我的方法声明中输入正确的内容。
这也是为什么当我尝试调用它时,它不起作用。
public class Assignment2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
double income1;
double sttax;
income1=0;
sttax=0;
System.out.println("This program is designed to have the user input ");
System.out.println("their yearly income, and this program will give output for ");
System.out.println("state and federal tax, gross and net pay for any given numeric input.\n");
income1=in.nextDouble();
sttax=sttax1(sttax);
System.out.print(" "+ sttax);
}
public static double sttax1 (double income) {
income=income1;
if (income<1000)
sttax=.02*income;
if (1000>=income && income<2000)
sttax=20+ (.03*(income-1000));
if (2000>=income && income < 3000);
sttax=50+ (.04*(income-2000));
if (3000 >= income && income < 10000)
sttax=90+ (.0475*(income-3000));
if (100000>= income && income< 125000)
sttax=4697.50+ (.05*(income-100000));
if (125000>= income && income < 150000)
sttax=5947.50+ (.0525*(income-125000));
if (150000>= income && income < 250000)
sttax=7260.00+ (.055*(income-150000));
if (income>=250000)
sttax=12760.00+ (.0575*(income-250000));
return sttax;
}
}
答案 0 :(得分:0)
您的代码有几个问题:
}
。 sttax1
方法期望参数income
根据income
计算税金。当您调用该方法时,您应该使用用户输入的income
作为参数。现在您使用sttax
作为参数,当您致电sttax1
时,该参数始终为0。sttax1
方法的调用后,您只需使用方法参数(income
)代替income1
。答案 1 :(得分:0)
更改您的代码,如下所示。 方法调用,方法内部方法,使用变量超出范围,不必要地使用变量存在问题
public class Assignment2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
double income1;
double sttax;
income1=0;
sttax=0;
System.out.println("This program is designed to have the user input ");
System.out.println("their yearly income, and this program will give output for ");
System.out.println("state and federal tax, gross and net pay for any given numeric input.\n");
income1=in.nextDouble();
sttax=sttax1(income1);
System.out.print(" "+ sttax);
}
public static double sttax1 (double income) {
double sttax=0.0;
if (income<1000)
sttax=.02*income;
if (1000>=income && income<2000)
sttax=20+ (.03*(income-1000));
if (2000>=income && income < 3000);
sttax=50+ (.04*(income-2000));
if (3000 >= income && income < 10000)
sttax=90+ (.0475*(income-3000));
if (100000>= income && income< 125000)
sttax=4697.50+ (.05*(income-100000));
if (125000>= income && income < 150000)
sttax=5947.50+ (.0525*(income-125000));
if (150000>= income && income < 250000)
sttax=7260.00+ (.055*(income-150000));
if (income>=250000)
sttax=12760.00+ (.0575*(income-250000));
return sttax;
}
}
答案 2 :(得分:0)
您正在将用户输入分配给income1
,但您不会使用它来调用您的方法。
所以首先应该用正确的参数调用你的方法:
sttax = sttax1(income1);
然后你不需要这一行:
income = income1;
其余的似乎只是数学,所以如果有错误,你应该检查你的计算。除非你的脸上有一个实际的异常,否则你的代码运行正常。
如果你的结果不符合你的预期,也许你也应该考虑懒惰评估。 http://en.wikipedia.org/wiki/Lazy_evaluation