Вопрос: Создайте программу под названием ValidateThird, которая вводит номер оценки (0-5) от пользователя. Если введен действительный номер оценки, программа должна напечатать «ОК». В противном случае программа должна напечатать введенное значение, а «оценка не является допустимой». и снова предложите номер оценки. Программа должна продолжать запрашивать номера оценок, пока пользователь не введет правильный номер оценки.
Мой код:
package chapter1.basic;
import java.util.*;
public class ValidateThird {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean continueInput = true;
do {
try {
System.out.print("Enter grade (0-5): ");
String input1 = input.nextLine();
int grade = Integer.parseInt(input1);
if (grade > 5) {
System.out.print(input1);
throw new NumberFormatException ();
}
else {
System.out.println("OK");
}
continueInput = false;
}
catch (NumberFormatException ex) {
System.out.println(" is not a valid grade.");
}
} while(continueInput);
}
}
Мой результат:
Enter grade (0-5): 9
9 is not a valid grade.
Enter grade (0-5): two
is not a valid grade.
Enter grade (0-5): 4
OK
, Мой ожидаемый результат :
Enter grade (0-5): 9
9 is not a valid grade.
Enter grade (0-5): two
two is not a valid grade.
Enter grade (0-5): 4
OK
из-за большого количества переменных я не мог получить ввод при попытке использования в catch. Есть идеи, как исправить мой код, чтобы получить ожидаемый результат?
Заранее спасибо!