// Precondition: number provided is a positive integer
// Postcondition: returns a integer of length 4
public static int validateNumber(int num, Scanner scan)
{
int number = num;
while(number < 1000 || number > 9999)
{
try
{
System.out.print("Number must be 4 digits long. Please provide the number again: ");
number = scan.nextInt(); // reads next integer provided
scan.nextLine();
}
catch(InputMismatchException e) //outputs error message if value provided is not an integer
{
System.out.println("Incorrect input type.");
}
}
return number;
}
前提条件が満たされていると仮定すると、このメソッドが実行され、文字列を入力してプログラムをテストすると、無限ループが発生します。なぜこの問題が発生するのですか?どうすれば修正できますか?