-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSwitchGrader.java
More file actions
58 lines (53 loc) · 1.77 KB
/
SwitchGrader.java
File metadata and controls
58 lines (53 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/**
* @author benkimz
* A GRADING PROGRAM USING THE SWITCH STATEMENT
* Java Programming
*/
import java.util.Scanner;
import java.time.temporal.ValueRange;
@FunctionalInterface
interface SwitchGrading{
abstract String grade(int mark);
}
public class SwitchGrader {
public static void main(String args[]) {
SwitchGrading grader = (int mark) -> {
ValueRange gradeA = ValueRange.of(80, 100);
ValueRange gradeB = ValueRange.of(60, 79);
ValueRange gradeC = ValueRange.of(40, 59);
ValueRange gradeD = ValueRange.of(30, 39);
ValueRange fail = ValueRange.of(0, 29);
switch(
(gradeA.isValidValue(mark)) ? "A" :
(gradeB.isValidValue(mark)) ? "B" :
(gradeC.isValidValue(mark)) ? "C" :
(gradeD.isValidValue(mark)) ? "D" :
(fail.isValidValue(mark)) ? "F" : "INVALID"
){
case "A":
return "A";
case "B":
return "B";
case "C":
return "C";
case "D":
return "D";
case "F":
return "FAIL";
default:
return "INVALID";
}
};
Scanner input = new Scanner(System.in);
System.out.print("\n --- System Online [Ready to Grade] --- ");
while(true){
try{
System.out.print("\n\t Enter mark: ");
int mark = input.nextInt();
System.out.println("\t\t grade: " + grader.grade(mark));
}catch(Exception e){
break;
}
}
}
}