Tôi đang sử dụng đoạn mã sau:.Java: vòng lặp vô hạn sử dụng Scanner in.hasNextInt()
while (invalidInput)
{
// ask the user to specify a number to update the times by
System.out.print("Specify an integer between 0 and 5: ");
if (in.hasNextInt())
{
// get the update value
updateValue = in.nextInt();
// check to see if it was within range
if (updateValue >= 0 && updateValue <= 5)
{
invalidInput = false;
}
else
{
System.out.println("You have not entered a number between 0 and 5. Try again.");
}
} else
{
System.out.println("You have entered an invalid input. Try again.");
}
}
Tuy nhiên, nếu tôi nhập 'w' nó sẽ cho tôi biết "Bạn đã nhập vào không hợp lệ Try Again . " và sau đó nó sẽ đi vào một vòng lặp vô hạn hiển thị văn bản "Chỉ định một số nguyên từ 0 đến 5: Bạn đã nhập một đầu vào không hợp lệ. Hãy thử lại."
Tại sao điều này lại xảy ra? Không phải chương trình phải chờ người dùng nhập và nhấn enter mỗi lần đạt đến tuyên bố:
if (in.hasNextInt())
Vì bạn chưa chỉ cho ai biết thứ 'in' là gì, hoặc cách bạn xây dựng nó, không có cách nào để nói nó sẽ hoạt động như thế nào! –