Как правильно выйти из цикла for?
Я в Java человек новый и мне не дает покоя один вопрос: как правильно прервать цикл?
У меня есть текстовый с полями чисел(количество полей не ограниченно), циклом "for" я читаю его и когда цифры заканчиваются, выхожу через исключение "catch".
примерно так:
try {
reader = new BufferedReader(new FileReader("src/cache/vk" + own_Id + "/Id/Idold.txt"));
for (int i = 0; i <= 4; i ++) {
postIdOld [i] = Integer.parseInt(reader.readLine());
}
} catch (RuntimeException e) {
System.out.println("reader faile");
break;
} finally {
reader.close();
}
Правильно ли я делаю или есть лучше способ?
Ответы (1 шт):
Ты неправильно понимаешь выход из цикла, catch и break. catch - это не выход из цикла, а блок который выполняется, если в блоке try произошло исключение, например parseInt выдало ошибку.
Что касается цикла, то он отработает у тебя 5 раз и корректно пойдет дальше, если не будет ошибок.
Чтобы прервать цикл раньше - нужно использовать break, но делать это надо внутри блока for. И обычно break выполняется с определенным условием, например:
for (int i = 0; i <= 4; i ++) {
int parsed = Integer.parseInt(reader.readLine());
// Например цикл выполняется второй раз и число больше 20
// Тогда сработает break и цикл больше выполняться не будет
// а программа пойдет дальше
if(parsed > 20) {
break;
}
postIdOld[i] = parsed;
}
Если просто положить break в цикл - то выполнится всё что до break. break вне блока цикла как у тебя в catch не используется.