読んでいただきありがとうございます。私はJavaを初めて使用し、プログラムを作成しようとしています。
だから私は配列でループを実行するパブリッククラスmysystemと呼ばれるメソッドを持っています
for (int i = 0; i < tax.length; i++)
mainメソッドではエラーが発生しますが、常にエラーが発生します。その配列を1回は1つの値の計算に、2回目は別の値の計算に使用するため、このように設定する必要があります。
私が日食で得るエラーは
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);
}
}