Лучше получить ввод с помощью next()
, и чтобы не добавлять библиотеки третьей части, создайте вспомогательный метод, чтобы проверить, является ли ввод числом:
Вспомогательный метод :
public static boolean isNumeric(String strNum) {
try {
int d = Integer.parseInt(strNum);
} catch (NumberFormatException | NullPointerException nfe) {
return false;
}
return true;
}
Использование его в цикле do / while :
Scanner scanner = new Scanner(System.in);
List<Integer> list = new ArrayList<>();
boolean flag = true;
do {
System.out.println("Enter a number");
String input = scanner.next();
if(!isNumeric(input)) {
if(!input.equals("c")) {
System.out.println("Thats not a number !");
continue; // will restart the loop
}
else break; // will exit if input is "c"
}
else {
list.add(Integer.parseInt(input));
System.out.println(list);
}
}
while(flag);
Живой пример здесь .