Сводка
Инструкция continue прерывает выполнение итерации текущего или отмеченного цикла, и продолжает его выполнение на следующей итерации.
Синтаксис
continue [ label ];
-
label
-
Идентификатор, являющийся меткой (
label
) инструкции.
Описание
По сравнению с инструкцией break
, continue
прерывает выполнение цикла не полностью, вместо этого:
- В цикле
while
оно переносит поток выполнения к условию.
- В цикле
for
оно переносит поток выполнения к финальному выражению в описании цикла.
Инструкиця continue
может использоваться вместе с необязательной меткой, которая будет начинать следующую итерацию отмеченного цикла, а не текущего. В этом случае, continue
должен находиться внутри отмеченного блока, который соответствует метке.
Примеры
Использование continue
с циклом while
Пример показывает использование цикла while
вместе с инструкцией continue, которая выполняется, когда
i
станет равно 3-м. Таким образом, n
принимает значения 1, 3, 7 и 12.
i = 0; n = 0; while (i < 5) { i++; if (i === 3) { continue; } n += i; }
Использование continue
вместе с меткой
В примере цикл, отмеченный checkiandj
, содержит внутри себя цикл, отмеченный checkj
. Если встретится инструкция continue
, выполнение кода продолжится в начале блока кода checkj
. При каждом вызове continue цикл
checkj
будет начинать новую итерацию, пока условие не начнёт возвращать false
. Когда это случится, продолжится выполнение оставшейся части цикла checkiandj
.
Если бы continue
имело метку checkiandj
, программа продолжала бы свою работу с начала цикла checkiandj
.
Смотрите также label
.
var i = 0, j = 8; checkiandj: while (i < 4) { console.log("i: " + i); i += 1; checkj: while (j > 4) { console.log("j: "+ j); j -= 1; if ((j % 2) == 0) continue checkj; console.log(j + " является нечётным."); } console.log("i = " + i); console.log("j = " + j); }
Вывод:
"i: 0" // начало checkj "j: 8" "7 является нечётным." "j: 7" "j: 6" "5 является нечётным." "j: 5" // конец checkj "i = 1" "j = 4" "i: 1" "i = 2" "j = 4" "i: 2" "i = 3" "j = 4" "i: 3" "i = 4" "j = 4"
Спецификации
Спецификация | Статус | Комментарии |
---|---|---|
ECMAScript 1-е Издание. | Стандарт | Изначальное определение. Версия без метки. |
ECMAScript 3-е Издание. | Стандарт | Добавлена поддержка метки. |
ECMAScript 5.1 (ECMA-262) Определение 'Continue statement' в этой спецификации. |
Стандарт | |
ECMAScript 6 (ECMA-262) Определение 'Continue statement' в этой спецификации. |
Кандидат в рекомендации |
Поддержка браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
Возможность | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |