Оператор break в JS
Оператор break в JavaScript: досрочный выход из цикла for, while и оператора switch — с пошаговым разбором примеров.
break немедленно прерывает выполнение текущего цикла (
for,while,do...while) или веткиswitchи передаёт управление следующей инструкции после прерванного блока.
Синтаксис
break;
Необязательная метка break метка; используется редко — только при вложенных циклах, когда нужно выйти сразу из нескольких уровней.
Как это работает
Без break цикл идёт до конца условия. С break — останавливается прямо в точке вызова.
// без break: выведет 1 2 3 4 5
for (let i = 1; i <= 5; i++) {
console.log(i);
}
// с break при i === 3: выведет только 1 2
for (let i = 1; i <= 5; i++) {
if (i === 3) break;
console.log(i);
}
Вывод:
1 2 3 4 5 1 2
break с циклом for
Пример 1. Найти первое чётное число в массиве
const nums = [7, 3, 4, 9, 2, 8];
let found = -1;
for (let i = 0; i < nums.length; i++) {
if (nums[i] % 2 === 0) {
found = nums[i];
break; // нашли — дальше искать не нужно
}
}
console.log("Первое чётное:", found);
Вывод:
Первое чётное: 4
Без break цикл прошёл бы весь массив. С break он остановился на индексе 2, сэкономив три итерации.
break с циклом while
Пример 2. Накапливать сумму, пока она не превысит порог
const values = [10, 25, 40, 15, 30];
let sum = 0;
let limit = 60;
for (let i = 0; i < values.length; i++) {
sum += values[i];
console.log(`Добавили ${values[i]}, сумма = ${sum}`);
if (sum > limit) {
console.log("Порог превышен, останавливаемся.");
break;
}
}
console.log("Итоговая сумма:", sum);
Вывод:
Добавили 10, сумма = 10 Добавили 25, сумма = 35 Добавили 40, сумма = 75 Порог превышен, останавливаемся. Итоговая сумма: 75
break с вложенными циклами
break выходит только из ближайшего цикла — того, внутри которого стоит.
Пример 3. Прервать только внутренний цикл
for (let i = 1; i <= 3; i++) {
for (let j = 1; j <= 3; j++) {
if (j === 2) break; // выходим только из внутреннего цикла
console.log(`i=${i}, j=${j}`);
}
}
Вывод:
i=1, j=1 i=2, j=1 i=3, j=1
Внешний цикл продолжает работать. Из каждой итерации внешнего цикла внутренний выводит лишь j=1 и тут же прерывается.
break в switch
В операторе switch break завершает текущую ветку, не давая выполнению «просочиться» в следующую.
const day = "вт";
switch (day) {
case "пн":
console.log("Понедельник");
break;
case "вт":
console.log("Вторник");
break;
case "ср":
console.log("Среда");
break;
default:
console.log("Другой день");
}
Вывод:
Вторник
Коротко
breakнемедленно выходит из цикла или веткиswitch.- При вложенных циклах прерывается только ближайший цикл.
- Типичные случаи: ранний выход при нахождении нужного элемента, ограничение накопленного значения.
- В
switchbreakнужен в каждой ветке, иначе выполнение «провалится» в следующую.