Reputation: 37
Thanks for reading, I am brand new with java and I am trying to create a program.
So I have a method called public class mysystem in which i perform a loop on a array
for (int i = 0; i < tax.length; i++)
in the main method but I get errors all the time - it needs to be setted up that way as I will use that array twice once for calculating one value and second time for another value
The error I get in eclipse is
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)
On request the full code
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);
}
}
Upvotes: 0
Views: 485
Reputation: 1030
The taxAlone
method does not have visibility for the tax
variable. Can resolve in one of two ways:
private static double[][] tax
and work with just that copytaxAlone
method, e.g. public static void taxAlone(double[][] tax, double inputwage)
and be sure to pass the constructed object as an argument to the method.Upvotes: 3
Reputation: 83537
You are trying to use a variable named tax
in the taxAlone()
method. However, the only declaration for a variable named tax
is in main()
. taxAlone()
does not know anything about variables inside of main()
. You most likely need to pass the tax
variable as a parameter from main to taxAlone()
.
Upvotes: 3