samedi 23 janvier 2016

Java compare salary and determine grade

I was having some problem when trying to get the logic right for Java program.

The salary scheme for a company is given as follows:
Salary range for grade A: $700 - $899
Salary range for grade B: $600 - $799
Salary range for grade C: $500 - $649

-salary between $600 and $649 is in grade C if his merit points are below 10,
otherwise he is in grade B.

-salary is between $700 and $799 is in grade B if his merit
points are below 20, otherwise, he is in grade A. 

Test cases: (1) salary : $500, merit : 10; (2) salaray : $610, merit : 5; (3) salary : $610, merit : 10; (4)
salary : $710, merit : 15; (5) salary : $710, merit : 20; (6) salary : 800, merit : 30.

Expected outputs: (1) salary : $500, merit : 10 – Grade C; (2) salaray : $610, merit : 5 – Grade C; (3)
salary : $610, merit : 10 – Grade B; (4) salary : $710, merit : 15 – Grade B; (5) salary : $710, merit :
20 – Grade A; (6) salary : 800, merit : 30 – Grade A.

And here is my code:

public static void main(String[] args) {
    int salary, merit;
    Scanner sc = new Scanner(System.in);

    System.out.print("Enter salary: ");
    salary = sc.nextInt();
    System.out.print("Enter merit: ");
    merit = sc.nextInt();

    if(salary > 500 || salary < 649){
        if (merit <= 10) {
            System.out.println("salary: $ " + salary + ", merit: " + merit
                    + " - Grade C");
        }else{
            System.out.println("salary: $ " + salary + ", merit: " + merit
                    + " - Grade B");
        }
    }else if(salary > 700){
        if (merit < 20) {
            System.out.println("salary: $ " + salary + ", merit: " + merit
                    + " - Grade B");
        }else{
            System.out.println("salary: $ " + salary + ", merit: " + merit
                    + " - Grade A");
        }
    }

}

My test case 1,2,4,6 were correct. However, test case 3 is giving me Grade C whereas test case 5 is giving me grade B. I not sure how should I fix the logic part.

Thanks in advance.

Aucun commentaire:

Enregistrer un commentaire