程序顯示一個問題,用戶輸入1到5的數字。5個用戶的5個問題。然而,只要它是一個Int,程序就不會識別出好的輸入,或者不好的輸入。在它運行之前,我必須輸入很多次它再次運行Survey.presentQuestions()。我無法弄清楚爲什麼。如何驗證輸入是否爲Int並且在數字範圍內?
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
Survey.presentQuestion(j, i);
do{
TempAns = in.nextInt();
while (!(in.hasNextInt()))
{
System.out.println("Please enter integer value from 1 to 5!");
in.next();
}
}while(TempAns >= 1 && TempAns <= 5);
Survey.ResultArray[i][j] = TempAns;
}
}
您確定:while(TempAns> = 1 && TempAns <= 5);是正確的?不應該是(TempAns <1 || TempAns> 5); – dragon66
您可能還需要移動TempAns = in.nextInt();在內部while循環下。 – dragon66