感谢阅读,我是 Java 新手,我正在尝试创建一个程序。
所以我有一个名为 public class mysystem 的方法,我在其中对数组执行循环
for (int i = 0; i < tax.length; i++)
在主要方法中,但我总是遇到错误 - 它需要以这种方式设置,因为我将使用该数组两次计算一个值,第二次使用另一个值
我在 Eclipse 中遇到的错误是
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
tax cannot be resolved to a variable
tax cannot be resolved to a variable
tax cannot be resolved to a variable
tax cannot be resolved to a variable
tax cannot be resolved to a variable
tax cannot be resolved to a variable
at mysystem.taxAlone(mysystem.java:11)
at mysystem.main(mysystem.java:83)
根据要求提供完整代码
import java.util.Scanner;
public class taxsystem{
public static void taxAlone(double inputwage){
for (int i = 0; i < tax.length; i++)
{
// Check what tax bracket the value falls in to
if ((inputwage >= tax[i][0]) && (inputwage <= tax[i][1]))
{
// Declare the tax variable
double taxValue;
// do the calculation - amount taxable * taxrate + Cumulative value
taxValue = ( ( (inputwage - tax[i][0]) * tax[i][2]) + tax[i][3]);
//rounding up or down!
int finalTax = (int)Math.round(taxValue);
//Print out the result!
System.out.println("You will be taxed £ "+ finalTax);
}
}
}
public static void main(String[] args)
{
double[][] tax = new double[6][4];
// First Tax Band
tax[0][0] = 0;
tax[0][1] = 100;
tax[0][2] = 0;
tax[0][3] = 0; // 0 to start
// Second Tax Band
tax[1][0] = 101;
tax[1][1] = 150;
tax[1][2] = 0.1;
tax[1][3] = 0; // 0* 100 = 0
// Third Tax Band
tax[2][0] = 151;
tax[2][1] = 200;
tax[2][2] = 0.2;
tax[2][3] = 4.9; // 100 * 0 + 49 * 0.1 = 4.9
// Fourth Tax Band
tax[3][0] = 201;
tax[3][1] = 300;
tax[3][2] = 0.4;
tax[3][3] = 14.7;
// Fifth Tax Band
tax[4][0] = 301;
tax[4][1] = 400;
tax[4][2] = 0.6;
tax[4][3] = 54.3;
// Sixth Tax Band
tax[5][0] = 401;
tax[5][1] = 10000; // Dummy Value - Program is only assumed to
// takes values up to 1000 pounds
tax[5][2] = 1.2;
tax[5][3] = 113.7;
// Display instructions and ask for value
System.out.println("Please enter the income earned to calculate tax");
Scanner read = new Scanner(System.in);
double wage = read.nextDouble();
taxAlone(wage);
}
}