java 使用带有数组的方法

标签 java loops methods for-loop

感谢您的阅读,我是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);



                    }
    }

最佳答案

taxAlone 方法不具有 tax 变量的可见性。可以通过以下两种方式之一解决:

  1. 将税收变量添加为静态变量,例如私有(private)静态双[][]税并仅使用该副本
  2. 将税收变量作为参数添加到 taxAlone 方法中,例如public static voidtaxAlone(double[][]tax, double inputwage)并确保将构造的对象作为参数传递给该方法。

关于java 使用带有数组的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259397/

相关文章:

c++ - 循环效率: merging loops

java - 如何找到在给定类中实现其方法的 Java 接口(interface)?

java - 从android中的另一个线程更新ui

java - 为什么我们在Builder设计模式中需要 'Builder class'?

java - 使用 apache-camel 在 Java 中获取 SQL 记录并使用制表符分隔分隔符写入文本文件(Spring 和 XML DSL 文件除外)

ios - 未调用完成处理程序 - iOS

php - 如何检查PHP中的方法是否是静态的?

java - Google Drive Java 快速入门指南警告

c++ - 如何用 C++ 编写以 10 为底的对数函数?

python,生成器迭代一个或多个项目