Я пытаюсь проверить вход пользователя так, что программа вернется к первому вопросу о запросе пользователя для оценки, если он НЕ является int, а int не находится в пределах от 9 до 12 включительно. Есть ли «лучший» способ написания этого кода?Есть ли способ сделать этот код подтверждения пользователя более эффективным и/или более легким для чтения?
do
{
if (userGrade < 9 || userGrade > 12)
{
System.out.println("That is not a valid grade!");
}
System.out.printf("Grade (9-12): ");
while(!enterInfo.hasNextInt())
{
System.out.println("That is not a number! Enter in a valid number.");
enterInfo.next();
}
userGrade = enterInfo.nextInt();
} while (userGrade < 9 || userGrade > 12);
Условие while повторяется внутри блока do. – Stavm
Это выглядит нормально, за исключением того, что прочитав что-нибудь, вам нужно вызвать 'enterInfo.nextLine()', чтобы использовать новую строку из буфера. – Bohemian
Вы также можете использовать 'while (true)' loop и 'break;' из него, когда ответ верен. –