我想驗證用戶輸入,以便程序將循環回到第一個詢問用戶的等級,如果它不是一個整數,並且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)'循環和'break;'。 –