Я пытался получить 10 Integer ввода от пользователей. Кроме того, я хочу обработать исключение, когда пользователи вводят неверный тип данных (не Integer). Однако у меня есть эта проблема при использовании цикла for & try/catch. Например, если я введу String на четвертый номер. Я хотел бы получить это в результате:Try/Catch проблемы при использовании цикла for в Java
Type 1. integer: 15
Type 2. integer: 152
Type 3. integer: 992
Type 4. integer: jj
Invalid number
Type 5. integer: Invalid number
Type 6. integer: Invalid number
Type 7. integer: Invalid number
Type 8. integer: Invalid number
Type 9. integer: Invalid number
Type 10. integer: Invalid number
Integers: [15, 152, 992]
Я не знаю, как повторно цикл после перехвата исключения.
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
Integer integer;
List<Integer> integerList = new ArrayList<Integer>();
for (int i = 1; i < 11; i ++) {
System.out.print("Type " + i + ". integer: ");
try {
integer = input.nextInt();
integerList.add(integer);
}
catch (InputMismatchException exc) {
System.out.println("Invalid number");
}
}
System.out.println("Integers: " + integerList);
}
Что именно проблема с выходом вы вывесили? В чем вопрос? – EJP
Сначала вам нужно создать MCVE: http://stackoverflow.com/help/mcve Затем вам нужно сбросить буфер сканера: http://stackoverflow.com/questions/10604125/how-can-i-clear-the -scanner-buffer-in-java. Наконец, вам нужно сбросить «i», чтобы вы могли повторить один и тот же ввод. –