Полагаю, вы пытаетесь достичь чего-то подобного:
public enum Grade {
A(95, 100, "A"),
AMINUS(92, 94, "A-"),
BPLUS(89, 91, "B+"),
B(86, 88, "B"),
BMINUS(83, 85, "B-"),
CPLUS(80, 82, "C+"),
C(77, 79, "C"),
CMINUS(74, 76, "C-"),
DPLUS(71, 73, "D+"),
D(68, 70, "D"),
DMINUS(65, 67, "D-"),
F(1, 64, "F"),
FA(0, 0, "FAILURE TO APPEAR");
private final String gradeText;
private final int lower;
private final int higher;
private Grade(int lower, int higher, String gradeText) {
this.gradeText = gradeText;
this.lower = lower;
this.higher = higher;
}
public String getGradeText() {
return this.gradeText;
}
public static Grade getGrade(int points) {
for (Grade g : Grade.values()) {
if (g.lower <= points && points <= g.higher) {
return g;
}
}
return null;
}
public static void main(String[] args) {
for (int i = 0; i <= 100; i++) {
System.out.println(Grade.getGrade(i));
}
}
}
Я заменил ваше определение "диапазона" двумя отдельными параметрами, сохранил их в полях перечисления и добавил метод getGrade(int points)
, который возвращает элемент перечисления Grade
, соответствующий данному количеству баллов.Если вы введете какое-либо число, находящееся за пределами диапазона от 0
до 100
, метод возвращает ноль.Метод main
предназначен только для завершения этого простого доказательства концепции и примера использования метода getGrade(int)
.