I want to create a code that will allow me to calculate bonuses based on the 10 salarys. i need if statements for this, i need to then assign the new value to my other array i have set up called total, and then i need to display that as well.Ive tried everything with my if statements and it just wont accept anything other than doing one for each element which is no good!! I have a test class also.....any ideas? So far my code prints out the salarys in my array...

``````public class Salary
{

public void calcSalary()
{

int wages[]={50000,40000,30000,20000,10000,60000,35000,46000,23000,19000};

int total[];

total=new int[11];

//output each array elements value
for (int counter=1; counter < wages.length;counter++)

System.out.printf("%1d%11d\n",counter,wages[counter]);

}

}

HERES MY TESTER

public class SalaryTest
{

public static void main(String []args)
{

Salary pointer1=new Salary();
pointer1.calcSalary();

}

}
``````

## All 9 Replies

I have gotten slightly further and now have this,however it refuses to do and print my calculations. I need it to print the first array which is working fine, then do the calculations, then assign the totals of those calculations to my array called total, and then print that array too.... i dont think im very far away.?

``````public class Salary
{

public void calcSalary()
{

int wages[]={50000,40000,30000,20000,10000,60000,35000,46000,23000,19000};

final int TOTAL_LENGTH=11; //declare constant
int total[]=new int[TOTAL_LENGTH];

int counter=0;

while (counter<total.length)
{

counter++;

if (wages[counter]<=19000)
{

total[counter]=wages[counter]/100*30+wages[counter];
System.out.printf("\nTotal after bonus is %d",total[counter]);

}

if (wages[counter]>19000 && wages[counter]<=40000)
{

total[counter]=wages[counter]/100*20+wages[counter];
System.out.printf("\nTotal after bonus  is %d",total[counter]);

}

if (wages[counter]>40000)
{

total[counter]=wages[counter]/100*10+wages[counter];
System.out.printf("\nTotal after bonus is %d",total[counter]);

}

System.out.printf("%1d%11d\n",counter,wages[counter]);

}

}

}
``````

@jbennet
Shouldn't this be moved in the java forum?

@MichaelCJ10

``````while (counter<total.length)
{

counter++;
...``````

When you start your while loop you immediately started with an increment to the counter which caused it to use the next element instead of starting with wages[0]
Next

``final int TOTAL_LENGTH=11; //declare constant``

The array has only 10 elements

ok this is what i have now, my last problem seems to be getting my whole program to work with doubles rather than ints, while my counter remains an int??? How is this going to work?

``````public class Salary
{

public void calcSalary()
{

int wages[]={50000,40000,30000,20000,10000,60000,35000,46000,23000,19000};

final int TOTAL_LENGTH=10; //declare constant
int total[]=new int[TOTAL_LENGTH];
int bonus=0;
int counter=0;

System.out.printf("\n%s\t%11s\n\n","REP","SALARY");

for (counter=0; counter <total.length; counter++)

System.out.printf("%2d\t%10d\n",counter, wages[counter]);

counter=0;

while (counter<total.length)
{

if (wages[counter]<=19000)
{

bonus=wages[counter]/100*30;
total[counter]=wages[counter]+bonus;
System.out.printf("%d\t%10d\n",bonus,total[counter]);

}

if (wages[counter]>19000 && wages[counter]<=40000)
{

bonus=wages[counter]/100*20;
total[counter]=wages[counter]+bonus;
System.out.printf("%d\t%10d\n",bonus,total[counter]);

}

if (wages[counter]>40000)
{

bonus=wages[counter]/100*10;
total[counter]=wages[counter]+bonus;
System.out.printf("%d\t%10d\n",bonus,total[counter]);

}

counter=counter+1;

}

}

}
``````

sometimes it just easier to do the math than create all that code, if you can create the code, then i'm sure youy can do that math

if you really want to be a programmer, it is hard work, trial & error, there's plently of books & resources, stop crying wolf

perhaps you should download some type of IDE(integrated development environment) that will notify you of any syntax errors....

-edit sorry i get so angry, but ya know what i mean?

I've spent a lot of time on it, and solved most of the problems myself as i got no reply on here anyway, but this last problem of converting the ints to doubles, i just cant see how i can do that while using a counter unless i have loads of extra variables will wont be good code.

don't use int use float?

edit- yeah don't use int use float , otherwise it just superman 3 and office space problem.

my last problem seems to be getting my whole program to work with doubles rather than ints,

Initialize the variables as a double then match the arguments at the printf() statments

while my counter remains an int

if your talking about the variable counter then there's not really a need to make it a double

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.