I am trying to use switch case for selecting out conditions based on variable, but I'm getting error. What would be the correct process to do so? Is it possible using switch case, or should i use nested iffs?
public class Grader {
// no attributes required
public Grader() {
// no code required
}
public String grade(int mark) {
String grade = null;
// code to determine grade goes here
switch (mark){
//For marks 85-100, Grade is HD
case ((100>=mark>=85)):
grade="HD";
break;
//For marks 75-84, Grade is D
case (mark>=75 && mark<=84):
grade="D";
break;
//For marks 65-74, Grade is C
case (mark>=65 && mark<=74):
grade="C";
break;
//For marks 50-64, Grade is P
case (mark>=50 && mark<=64):
grade="P";
break;
//For marks 49-0, Grade is HD
case (mark<=49 && mark>=0):
grade="F";
break;
}
return grade;
}
public boolean pass(int mark) {
boolean pass = false;
// code to determine pass goes here
return pass;
}
}
I
Switch only takes constant values in it's cases. You cannot add expressions in cases which evaluate run time.
The best here is to go with traditional if-else-if.
public String grade(int mark) {
String grade = null;
// code to determine grade goes here
if (mark >= 100 && mark <= 85) {
grade = "HD";
} else if (mark >= 75 && mark <= 84) {
grade = "D";
} else if (mark >= 65 && mark <= 74) {
grade = "C";
} else if (mark >= 50 && mark <= 64) {
grade = "P";
} else if (mark <= 49 && mark >= 0) {
grade = "F";
} else {
grade = "Not found";
}
return grade;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With