Загрузка...

break и continue

Цикл может пройти каждый круг до конца — пока вы им не управляете. Иногда ответ уже есть и нужно остановиться. Иногда элемент лишний и нужно его пропустить, потом идти дальше. break сразу выходит из цикла. continue переходит к следующему кругу. То же семейство циклов; два коротких слова меняют траекторию.

Что делает break?

break завершает ближайший цикл прямо сейчас. Последующие круги не выполняются. Код после цикла в скрипте всё равно выполняется. Думайте: «Готово — выходи.» Обычно при поиске первого совпадения без обхода остального.

break против continue

📊 Управление циклом на ходу

Ключевое слово Эффект Повседневный смысл
break выйти из цикла сейчас нашли первое совпадение; дальше ждать не нужно
continue пропустить остаток этого круга, начать следующий игнорировать плохой элемент; продолжить обход
ничего каждый круг выполняет всё тело каждый элемент обрабатывается одинаково
после цикла код под циклом всё ещё выполняется break выходит только из цикла, не из всего скрипта

Берите break, когда дальнейшие круги бесполезны. Берите continue, когда один круг должен молчать, но обход продолжается. Не путайте — ошибка выглядит «почти верно» и её трудно заметить.

break останавливает for

javascript
const nums = [2, 4, 7, 8];
let found = null;
for (let i = 0; i < nums.length; i++) {
if (nums[i] === 7) {
found = nums[i];
break;
}
}
console.log(found);

Остановитесь на совпадении

Цикл смотрит 2, затем 4, затем 7. На 7 сохраняет значение и делает break. 8 не выполняется. found равен 7. Без break цикл шёл бы дальше после известного ответа.

continue пропускает один круг

javascript
for (let i = 1; i <= 5; i++) {
if (i % 2 === 0) {
continue;
}
console.log(i);
}

Пропустите круг и идите дальше

Когда i чётный, continue переходит к следующему i. Строка console.log для этих кругов не выполняется. Вы видите 1, 3, 5. Цикл не остановился — просто обошёл чётные числа.

break внутри while

javascript
let n = 1;
while (n < 20) {
if (n === 5) {
break;
}
console.log(n);
n = n + 1;
}

Рано выйти из while

while шёл бы, пока n < 20. При n === 5 break выходит. Напечатано: 1–4. Подходит к «иди до правила остановки, потом выйди» без всех возможных кругов.

continue с for...of

javascript
const colors = ["red", "skip", "blue"];
for (const c of colors) {
if (c === "skip") {
continue;
}
console.log(c);
}

Пропускайте значения в for...of

for...of по-прежнему обходит значения. continue игнорирует "skip" и печатает red, затем blue. Идея управления одна для for, while и for...of — только ближайший цикл.

Собрать строку с пропуском

javascript
const parts = ["A", "x", "B", "x", "C"];
let msg = "";
for (const p of parts) {
if (p === "x") {
continue;
}
msg = msg + p;
}
console.log(msg);

Фильтруйте при склейке

Каждый "x" пропускается; буквы добавляются. Результат: ABC. Та же привычка склейки из прошлых уроков о циклах — continue это ворота фильтра в обходе.

Покажите break и continue на странице

Пройдите короткий список, пропустите метку через continue, рано остановитесь через break после маркера, запишите результат на страницу.

Обход страницы с пропуском и стопом

html
<!DOCTYPE html>
<html>
<head>
<title>break / continue — page</title>
</head>
<body>
<p id="out">…</p>
<script>
const items = ["a", "skip", "b", "stop", "c"];
let line = "";
for (const item of items) {
if (item === "skip") {
continue;
}
if (item === "stop") {
break;
}
line = line + item + " ";
}
let box = document.getElementById("out");
box.textContent = "kept=" + line.trim();
</script>
</body>
</html>

Страница показывает kept=a b. "skip" проигнорирован; "stop" закрыл цикл до "c". Измените массив, обновите страницу, прочитайте новую строку. Следующий урок — функции: блоки работы, которые вызывают по имени.

Попробуйте сами

  1. В for по [3, 9, 1] сделайте break при значении 9 и сохраните.
  2. Выведите только нечётные от 1 до 6, пропуская чётные через continue.
  3. В while остановитесь через break, когда счётчик станет 3.
  4. С for...of по ["ok", "no", "ok"] пройдите "no" через continue.
  5. Склейте ["1", "-", "2"] в 12, пропуская "-".
  6. В HTML-демо измените только массив, обновите и прочитайте kept=.

Частые ошибки

  • Думать, что continue выходит из всего цикла (это break)
  • Ставить работу после break в том же круге — она никогда не выполнится
  • В while делать continue без обновления счётчика — риск бесконечного цикла
  • Использовать break, когда нужен был только пропуск
  • Ждать, что break покинет весь скрипт — только ближайший цикл

Кратко

  • break — выйти из цикла сейчас; следующие круги не выполняются
  • continue — пропустить остаток этого круга; начать следующий
  • Работает в for, while и for...of
  • Поиск часто с break; фильтр часто с continue
  • Код после цикла после break всё ещё выполняется
  • Дальше: функции — назовите блок работы и вызовите его

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
8
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху