Прерывание и пропуск итераций
Зачем нужны прерывания и пропуски
Без них цикл всегда выполняет все итерации до завершения условия. Но в реальных приложениях часто нужно:
- Остановить цикл, если найден нужный элемент (например, пользователь найден).
- Пропустить некорректные данные (например, пустой товар в списке).
- Избежать лишних вычислений — это повышает производительность и предсказуемость.
break — выход из цикла
Команда break немедленно завершает цикл, даже если условие ещё истинно.
Пример: поиск пользователя в списке
const users = [
{ id: 1, name: "Анна" },
{ id: 2, name: "Иван" },
{ id: 3, name: "Мария" }
];
let foundUser = null;
for (let user of users) {
if (user.id === 2) {
foundUser = user;
break; // Нашли — выходим, дальше не ищем
}
}
console.log(foundUser); // { id: 2, name: "Иван" }
Без break цикл продолжил бы перебирать остальных пользователей — хотя ответ уже найден.
continue — переход к следующей итерации
Команда continue пропускает остаток текущей итерации и переходит к следующей.
Пример: обработка списка товаров, пропуск пустых
const products = [
"Ноутбук",
"",
"Телефон",
null,
"Наушники"
];
for (let product of products) {
if (!product) {
continue; // Пропускаем пустые и null
}
console.log("Товар: " + product);
}
Вывод:
Товар: Ноутбук
Товар: Телефон
Товар: Наушники
Пустые значения ("", null) игнорируются — цикл не выводит их, но не останавливается.
Пример в мобильном приложении
При загрузке списка сообщений из API:
for (let message of messages) {
if (!message.text) {
continue; // Пропускаем пустые сообщения
}
if (message.isDeleted) {
break; // Остановить загрузку, если встретили удалённое — дальше не нужно
}
renderMessage(message);
}
Важно
breakиcontinueработают только с ближайшим внешним циклом.- Вложенные циклы:
breakвыйдет только из внутреннего. - Используйте их для улучшения читаемости — не для обхода логики, а для оптимизации.
Правило
Используйте
break, когда найдено нужное и дальнейший перебор не нужен.
Используйтеcontinue, когда текущий элемент не подходит и его нужно пропустить.
Это делает код эффективнее и понятнее.