Оператор break в JavaScript: прерывание цикла

В этом руководстве вы узнаете, как использовать оператор break в JavaScript для преждевременного завершения или прерывания цикла.

Оператор label

В JavaScript вы можете пометить оператор для последующего использования. Вот синтаксис оператора label:

label: statement;

В этом синтаксисе метка может быть любым допустимым идентификатором. Например, ниже показано, как пометить цикл for с помощью outer метки:

outer: for (let i = 0; i < 5; i++) {
    console.log(i);
}

После определения метки вы можете сослаться на нее в операторе break или continue.

Что такое оператор break в JavaScript?

Оператор break в JavaScript преждевременно завершает цикл, такой как for, do...while и цикл while, оператор switch или оператор label. Вот синтаксис оператора break :

break [label];

В этом синтаксисе label необязательна, если вы используете оператор break в цикле или switch. Однако, если вы используете оператор break с оператором метки, вам необходимо указать его.

В этом руководстве основное внимание уделяется тому, как использовать оператор break для преждевременного завершения цикла.

Использование в цикле for

Следующий оператор цикла for выводит пять чисел от 0 до 4 :

for (let i = 0; i < 5; i++) {
  console.log(i);
}

Выход:

0 
1 
2 
3 
4

Чтобы преждевременно завершить цикл for, вы можете использовать оператор break. Ниже показано, как использовать оператор break внутри цикла for :

for (let i = 0; i < 5; i++) {
  console.log(i);
  if (i == 2) {
    break;
  }
}

Выход:

0 1 2

В этом примере мы используем оператор if внутри цикла. Если текущее значение i равно 2, оператор if выполняет оператор break, завершающий цикл.

Эта блок-схема иллюстрирует, как оператор break работает в цикле for :

Оператор break в цикле for

Завершение вложенного цикла

Вложенный цикл имеет один цикл внутри другого. Например, в следующем примере используется вложенный цикл for для вывода пары чисел от 1 до 3 :

for (let i = 1; i <= 3; i++) {
  for (let j = 1; j <= 3; j++) {
    console.log(i, j);
  }
}

Выход:

1 1 
1 2 
1 3 
2 1 
2 2 
2 3 
3 1 
3 2 
3 3

Если вы используете оператор break внутри внутреннего цикла, он завершает только объемлющий цикл. Например:

for (let i = 1; i <= 3; i++) {
  for (let j = 1; j <= 3; j++) {
    if (i + j == 4) {
      break;
    }
    console.log(i, j);
  }
}

Выход:

1 1 
1 2 
2 1

В этом примере, если сумма i и j равна 4, оператор break завершает внутренний цикл. Чтобы завершить вложенный цикл, вы используете оператор метки. Например:

outer: for (let i = 1; i <= 3; i++) {
  for (let j = 1; j <= 3; j++) {
    if (i + j == 4) {
      break outer;
    }
    console.log(i, j);
  }
}

Выход:

1 1 
1 2

В этом примере мы помечаем внешний цикл меткой outer. Внутри внутреннего цикла мы указываем outer метку в операторе break. Оператор break для завершения вложенного цикла, если сумма i и j равна 4.

Использование break в цикле while

Следующие пять чисел от 1 до 5 выводятся на консоль с помощью цикла while :

let i = 0;

while (i < 5) {
  i++;
  console.log(i);
}

Выход:

1 
2 
3 
4 
5

Подобно циклу for, оператор break прерывает цикл while преждевременно. Например:

let i = 0;

while (i < 5) {
  i++;
  console.log(i);
  if (i == 3) {
    break;
  }
}

Выход:

1 
2 
3

В этом примере, когда текущее значение i равно 3, оператор break прерывает цикл. Поэтому в выводе вы видите только три числа.

На следующей блок-схеме показано, как оператор break работает в цикле while :

Оператор break в цикле while

Использование оператора break в цикле do…while

В следующем примере оператор do...while используется для вывода на консоль пяти чисел от 0 до 5:

let i = 0;

do {
  i++;
  console.log(i);
} while (i < 5);

Выход:

1 
2 
3 
4 
5

Подобно циклу while, вы можете использовать оператор break для завершения цикла do...while while. Например:

let i = 0;

do {
  i++;
  console.log(i);
  if (i == 3) {
    break;
  }
} while (i < 5);

Выход:

1 
2 
3

Следующая блок-схема показывает, как оператор break работает в цикле do while while:

в цикле do while while

Заключение

  • Используйте оператор break для преждевременного завершения цикла, в том числе for, while и do...while.
  • При использовании во вложенном цикле оператор break прерывает окружающий цикл. Чтобы завершить вложенный цикл, используйте оператор метки.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript