Scanner scanner = new Scanner();
int number = 1;
do
{
try
{
option = scanner.nextInt();
}
catch (InputMismatchException exception)
{
System.out.println("Integers only, please.");
}
}
while (number != 0);
Despite the exception handling, this code will enter an infinite loop when non-integer input is given. Instead of Scanner
pausing to collect input in the next iteration, it simply continues throwing InputMismatchException
s until the program is killed.
What's the best way to scan for integer (or another type, I suppose) input, discarding invalid input and continuing the loop normally?