Я пытаюсь реализовать систему оценки для теста с использованием перечисления и оператора switch, однако с текущим кодом у меня есть результат всегда «null». Я не вижу, где это произошло, может ли кто-нибудь помочь?Оператор switch, возвращающий значение null
public enum Grade {
A, B, C, D, E, U;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter the students mark:");
int points = scan.nextInt();
if (points < 0 || points > 200) {
System.out.println("Error! points must be between 0 & 200");
} else {
System.out.println(findGrade(points));
}
}
public static Grade findGrade(int points) {
switch (points) {
case 1:
if (points>= 0 && points <= 59) {
return Grade.valueOf("U");
}
case 2:
if (points >= 60 && points <= 89) {
return Grade.valueOf("E");
}
case 3:
if (points >= 90 && points <= 119) {
return Grade.valueOf("D");
}
case 4:
if (points >= 110 && points <= 139) {
return Grade.valueOf("C");
}
case 5:
if (points >= 140 && points <= 169) {
return Grade.valueOf("B");
}
case 6:
if (points >= 170 && points <= 200) {
return Grade.valueOf("A");
}
default:
return null;
}
}
}
Так что, если 'points' будет равно 2, вы проверка' если (точек > = 60 && points <= 89) '. Считаете ли вы, что это логика? –
В чем смысл этого оператора switch? – Artur
все еще нужен перерыв; для каждого случая см. мой ответ ниже –