Даже простые вещи могут оказаться не очень простыми, если копнуть чуть глубже. Вот и инструкция continue, о назначении которой знают все (или почти все), может открыть для вас неожиданные знания.
В JavaScript, как и в большинстве других языков, эта инструкция запускает новую итерацию цикла, при этом весь код цикла, который следует за этой инструкцией, не выполняется. Синтаксис простой:
continue;
Однако в JavaScript эта инструкция может использоваться с меткой (впрочем, как и break):
continue ИмяМетки;
Как и для инструкции break, переводы строк между ключевым словом continue и именем метки не допускаются.
Также нельзя использовать метку в теле того же цикла, где применяется continue (или break), и за пределами циклов (во всяком случае у меня не получилось - ошибка, хотя в примерах в Интернете я такое видел).
Сегодня метки стараются не использовать. Я, например, не использую никогда. Но кто-то не видит в этом ничего страшного, и даже считает полезным. Вот здесь и здесь даже развернулись небольшие споры по поводу использования меток (правда, там речь шла об операторе goto, но сути это не меняет).
Впрочем, например, во вложенных циклах, метки могут быть полезными. Допустим, мы хотим вывести таблицу в цикле на экран. Но по каким-то причинам не хотим выводить одну из её строк. Это можно сделать разными способами. Например, использовать continue во внешнем цикле. А можно и применить метку во вложенном цикле:
Инструкция continue как без метки, так и с меткой может использоваться только в теле циклов. В любых других местах её применять нельзя - это приводит к синтаксической ошибке.
Когда выполняется инструкция continue, текущая итерация цикла прерывается и начинается следующая. Для разных видов циклов это означает разное:
- В цикле while указанное в начале цикла выражение проверяется снова, и если оно истинно, тело цикла выполняется сначала.
- В цикле do/while исполнение переходит в конец цикла, где перед повторным выполнением цикла снова проверяется условие.
- В цикле for вычисляется выражение инкремента и снова проверяется выражение проверки, чтобы определить, следует ли выполнять следующую итерацию.
- В цикле for/in цикл начинается заново с присвоением указанной переменной имени следующего свойства.
Обратите внимание на различия в поведении инструкции continue в циклах while и for - цикл while возвращается непосредственно к своему условию, а цикл for сначала вычисляет выражение инкремента, а затем возвращается к условию.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.