// Hmm, why is the first one fine, but he second one causing an infinite loop when failing?
// First one
String number;
int highestFactor;
do
{
System.out.println("Please enter how high you'd like to multiply (up to 20): ");
number = user_input.next();
try {
highestFactor = Integer.parseInt(number);
} catch (NumberFormatException e) {
System.out.print("That's not a number! ");
highestFactor = -1;
}
} while (highestFactor <= 0 || highestFactor > MAX_FACTOR);
// Second one
int highestFactor;
do
{
try {
System.out.println("Please enter how high you'd like to multiply (up to 20): ");
highestFactor = user_input.nextInt();
} catch (InputMismatchException e) {
System.out.print("That's not a number! ");
highestFactor = -1;
}
} while (highestFactor <= 0 || highestFactor > MAX_FACTOR);
Comments