The algorithm should take in 3 integers to an ArrayList. If the input is not an integer, then there should be a prompt. When I execute my code the catch clause is e
That is because when the next int is read using nextInt() and it fails, the Scanner still contains the typed contents. Then, when re-entering the do-while loop, input.nextInt() tries to parse it again with the same contents.
You need to 'flush' the Scanner contents with nextLine():
catch (Exception exc) {
input.nextLine();
System.out.println("invalid number");
}
Notes:
counter variable, because you're not using it. Otherwise, you could replace counter += 1 by counter++.while (!(numbers.size() == 3)) with while (numbers.size() != 3), or even better: while (numbers.size() < 3).Exception should be replaced by InputMismatchException in your case.