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