Javascript предоставляет нам несколько способов итерации, включая for, while, do while
циклов. Иногда мы можем захотеть выйти из цикла или пропустить какую-то конкретную итерацию. Мы можем сделать все это с помощью следующего: -
Разорвать цикл
Чтобы выйти из текущего цикла, мы используем ключевое слово break
. Если мы работаем с while loop
или do while loop
, цикл завершается, когда условие становится ложным, но мы также можем принудительно выйти из цикла с помощью ключевого слова break
.
let counter = 0; while( true ) { if ( counter === 5 ) { break; console.log('Will not run') // code after break statement does not runs } counter++; }
В приведенном выше примере мы инициализируем счетчик значением 0 и заставляем цикл while работать бесконечно, предоставляя истинное значение.
Чтобы выйти из этого бесконечного цикла, мы можем использовать ключевое слово break
, которое будет запущено, когда значение счетчика станет равным 5. Кроме того, код, написанный после оператора break, не выполняется.
Аналогичным образом мы можем использовать ключевое слово break
с for loop
.
Продолжить следующую итерацию
Во время цикла мы можем захотеть пропустить конкретную итерацию на основе некоторого условия и перейти к следующей итерации, тогда это можно сделать с помощью ключевого слова continue
. Давайте разберемся в этом больше с помощью примера: -
for ( let i = 1; i <= 5; i++ ) { if ( i === 3 ) { continue; } console.log(i) } // Output:- 1, 2, 4, 5
Здесь мы хотим пропустить итерацию, когда значение i
будет равно 3. Для этого мы использовали ключевое слово continue
. Из-за этого код, написанный после ключевого слова continue
, не будет выполняться, и цикл начнет повторяться по следующему условию, где i
станет 4.
Ярлык для перерыва/продолжения
Мы уже рассмотрели, как выйти из цикла, но есть ограничение, что он выходит только из текущего цикла, т. е. в случае, если код имеет вложенные циклы, и мы хотим сразу выйти из всех вложенных циклов. , только ключевое слово break
не поможет.
let counter = 0; while( true ) { // Loop1 while( true ) { // Loop2 if ( counter === 5 ) { break; } counter++; } }
Здесь у нас есть вложенные бесконечные циклы. В Loop2
мы предоставляем некоторое условие, на основе которого будет выполняться оператор break
. Это прервет выполнение Loop2
, но Loop1
останется выполняться бесконечно.
Поэтому для решения такого рода проблем мы используем labels
.
Метка — это не что иное, как идентификатор цикла, который следует следующему синтаксису:
labelName: while () { }
Итак, теперь, используя оператор break labelName
, мы можем напрямую выйти из любого именованного цикла. Давайте еще раз взглянем на предыдущий пример, который будет немного изменен, чтобы использовать метки.
let counter = 0; outer: while( true ) { // Loop1 while( true ) { // Loop2 if ( counter === 5 ) { break outer; } counter++; } }
Теперь самому внешнему циклу присваивается идентификатор метки outer
, и мы выходим из самого внутреннего цикла с помощью оператора break outer
. Это заставит код искать цикл с меткой outer
и выходить из этого цикла.