I want the user to enter a number which is scanned by the following code:
scanner.nextInt();
If a user enters a string instead, the program throws InputMismatchException
, which is obvious. I want to catch the exception in such a way that the program prompts the user to enter an input until the user enters an integer value.
Scanner scanner = new Scanner(System.in);
while(true) {
try {
System.out.println("Please enter a number: ");
int input = scanner.nextInt();
System.out.println(input);
//statements
break;
}
catch(InputMismatchException | NumberFormatException ex ) {
continue;
}
}
This code creates an infinite loop if a string is entered.
Scanner
(I've no real experience with the class, but I've seen it done else where), tryscanner.reset()
before thecontinue
– Quincentenary