Java 我需要打印出我在主方法中调用的方法的应纳税所得额。但是,方法中的循环将只返回一个值
这是我的代码,compute tax方法中的循环只返回第一个nmber,这甚至不正确。如何返回正确的值。在每个循环中,必须选择一种税级类型,输入数字1-4。这也将进入方法循环Java 我需要打印出我在主方法中调用的方法的应纳税所得额。但是,方法中的循环将只返回一个值,java,Java,这是我的代码,compute tax方法中的循环只返回第一个nmber,这甚至不正确。如何返回正确的值。在每个循环中,必须选择一种税级类型,输入数字1-4。这也将进入方法循环 public class TaxTable { public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println(" Enter in status\n
public class TaxTable
{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println(" Enter in status\n (1 for single\n,2 for married joint, 3 for Married separate, 4 for Head of House: ");
int status = scan.nextInt();
//if status to print out status name
if (status == 1)
System.out.println ("Taxable\t single\nIncome");
else if (status == 2)
System.out.println ("Taxable\tMarried Jointly\nQualified Widow\nIncome");
else if (status == 3)
System.out.println ("Taxable\tMarried separate\nIncome");
else if (status == 4)
System.out.println ("Taxable\tHead of House\nIncome");
int taxableIncome = 50000;
for (int i = 50000; i <= 60000; i += 50)
System.out.println (i + "\t" + Math.round(computeTax(status, taxableIncome)));
}
public static double computeTax (int status, double taxableIncome) {
double tax=0;
for (int k = 50000; k <= 60000; k =+ 50) {
if (status == 1)
taxableIncome = 4675 + ((k-33950)*.25);
else if(status == 2)
taxableIncome = 16701 + (k-16701)*.15;
else if(status == 3)
taxableIncome = 4675 + (k-33951)*.25;
else if(status == 4)
taxableIncome = 6227.5 + (k-33549)*.25;
return taxableIncome[k];
}
}
}
公共类税表
{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入状态\n(1表示单身,2表示已婚联合,3表示已婚分居,4表示户主:”);
int status=scan.nextInt();
//如果要打印状态名称,请选择“状态”
如果(状态==1)
System.out.println(“应纳税\t单一\n收入”);
否则如果(状态==2)
System.out.println(“应税\t联姻\n无资格寡妇\n结婚”);
否则如果(状态==3)
System.out.println(“应纳税\t婚姻分离\n收入”);
否则如果(状态==4)
System.out.println(“应税房屋\收入”);
应纳税所得额=50000;
要使(int i=50000;i在不使用数组的情况下“返回”多个值,请在方法中设置一个全局变量,然后返回第二个值
public static double returnVal2;
public static void method(){
double returnVal1 = otherMethod();
// returnVal1 now holds 1 return value, and returnVal2 now holds the other.
}
public static double otherMethod(){
returnVal2 = 0; // Change 0 to second value that you want to return.
return 0; // Change 0 to the first value that you want to return.
}
最初我的返回语句是return taxableIncome,它也不起作用。您在其中有一个返回语句;循环将永远不会经过第一次迭代。那么,我应该如何将所需的所有值返回到main方法使用数组double[]taxableIncome
作为computeTax(…)的第二个参数
method。您可能已经这样做了,因为您试图返回数组元素taxableIncome[k]
(尽管没有这样的数组)。向computeTax(…)
提供一个数组,该数组足够大,可以容纳所有值。在方法内填充数组。在方法外访问数组值。computeTax(...)
可以是void,
类型,也就是说,它不应该返回任何东西。有没有一种方法可以在没有数组的情况下实现这一点。我们在课堂上没有讨论过这些。这是一个非常糟糕的主意,顺便说一句。这并不是op问题的答案。op想知道如何在不使用数组的情况下返回多个值,我知道这并不理想,但它确实有用这是给OP的约束所能做的最好的了。@DirkLachowskiDownvote不是我的,而是真的:一个返回值的方法,作为副作用,修改一个全局变量以“返回”第二个值?返回一个对象怎么样?