# arrays

• 03-13-2011, 03:04 AM
durdanto
arrays
Hi, i am trying to create program for Tax

but i am having problem creating the tax formula using arrays
Output should be something like the following:

Tax filing status can be as follows:
(0-single, 1-married, 2-widowed, 3-living common-law, 4-to quit this program)
Enter the filing status: 0
Enter the taxable income in \$ 400000
Tax is \$117683.5

problem is that it works only if income is 40000\$
it does work properly if input is anything else
plz help
Code:

```import java.util.Scanner; public class ComputeTax {         /**         * @param args         */         public static void main(String[] args)         {                 //Scanner                 Scanner myKeyboard = new Scanner(System.in);                                 //Welcome message:                 System.out.println("Welcome to Revenue Agency Taxation");                 System.out.println("\nTax filing status can be as follows:" +                                 "\n(0-single, 1-married, 2-widowed, 2-living common-law, 4-to quit this program)");                 System.out.print("\nEnter the filing status: ");                                 //program starting algorithm:                                 double [] rates= {0.10, 0.15, 0.25, 0.28, 0.33, 0.35};                 double[][] brackets = {                                                         {8350, 33950, 82250, 171550, 372950},  //single                                                         {16700, 20885, 67900, 137050, 372950},  // Married                                                         {8350, 33950, 68525, 104425, 186475},  // Widowed                                                         {11950, 45500, 117450, 190200, 372950}  // Living common-law                                                         };                                                                 int i = myKeyboard.nextInt();                 while (i<4 & i>=0)                 {                                                 System.out.print("\nEnter the taxable income in \$ ");                         double income = myKeyboard.nextDouble();                                                                                                 //tax calculation:                         double tax = 0;                                                         {                                         if(i==0) //single                                         {                                         //        for (i=0; income > brackets[0][4]; i++ )                                                 tax = brackets[ 0][ 0] * rates[ 0] +                                                 ( brackets[ 0][ 1] - brackets[ 0][ 0]) * rates[ 1] +                                                 ( brackets[ 0][ 2] - brackets[ 0][ 1]) * rates[ 2] +                                                 ( brackets[ 0][ 3] - brackets[ 0][ 2]) * rates[ 3] +                                                 ( brackets[ 0][ 4] - brackets[ 0][ 3]) * rates[ 4] +                                                 ( income - brackets[ 0][ 4]) * rates[ 5];                                         }                                                if(i==1) // Married                                                 tax = brackets[ 1][ 0] * rates[ 0] +                                                 ( brackets[ 1][ 1] - brackets[ 1][ 0]) * rates[ 1] +                                                 ( brackets[ 1][ 2] - brackets[ 1][ 1]) * rates[ 2] +                                                 ( brackets[ 1][ 3] - brackets[ 1][ 2]) * rates[ 3] +                                                 ( brackets[ 1][ 4] - brackets[ 1][ 3]) * rates[ 4] +                                                 ( income - brackets[ 1][ 4]) * rates[ 5];                                         if(i==2) // Widowed                                                 tax = brackets[ 0][ 0] * rates[ 0] +                                                 ( brackets[ 2][ 1] - brackets[ 2][ 0]) * rates[ 1] +                                                 ( brackets[ 2][ 2] - brackets[ 2][ 1]) * rates[ 2] +                                                 ( brackets[ 2][ 3] - brackets[ 2][ 2]) * rates[ 3] +                                                 ( brackets[ 2][ 4] - brackets[ 2][ 3]) * rates[ 4] +                                                 ( income - brackets[ 2][ 4]) * rates[ 5];                                         if(i==3) // Living common-law                                                 tax = brackets[ 3][ 0] * rates[ 0] +                                                 ( brackets[ 3][ 1] - brackets[ 3][ 0]) * rates[ 1] +                                                 ( brackets[ 3][ 2] - brackets[ 3][ 1]) * rates[ 2] +                                                 ( brackets[ 3][ 3] - brackets[ 3][ 2]) * rates[ 3] +                                                 ( brackets[ 3][ 4] - brackets[ 3][ 3]) * rates[ 4] +                                                 ( income - brackets[ 3][ 4]) * rates[ 5];                                                                         }                                                                                         System.out.println("\nTax is \$" + tax );                 }                 System.out.println("\nGood Bye" );         } }```
• 03-13-2011, 05:17 PM
ozzyman
It would be better if you use Objects rather than Arrays. You can do this better with an Enum set. Please see how I solved this tax calculation solution for more details:

http://www.java-forums.org/new-java/...ssignment.html