0

読んでいただきありがとうございます。私は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);



                    }
    }
4

2 に答える 2

3

taxメソッドで指定された変数を使用しようとしていますtaxAlone()。ただし、という名前の変数の宣言はでのみtaxですmain()taxAlone()内の変数については何も知りませんmain()。ほとんどの場合、tax変数をパラメータとしてmainから。に渡す必要がありますtaxAlone()

于 2012-11-06T21:12:36.190 に答える
3

メソッドには変数のtaxAlone可視性がありません。tax次の2つの方法のいずれかで解決できます。

  1. 税変数を静的変数として追加します。たとえばprivate static double[][] tax、そのコピーだけで作業します
  2. 税変数を引数としてtaxAloneメソッドに追加します。たとえばpublic static void taxAlone(double[][] tax, double inputwage)、構築されたオブジェクトを引数としてメソッドに渡すようにしてください。
于 2012-11-06T21:19:38.943 に答える