continue

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Сводка

Инструкция continue прерывает выполнение текущей итерации текущего или отмеченного цикла, и продолжает его выполнение на следующей итерации.

Синтаксис

continue [ label ];
label

Идентификатор, являющийся меткой (label) инструкции.

Описание

По сравнению с инструкцией break, continue прерывает выполнение цикла не полностью, вместо этого:

  • В цикле while оно переносит поток выполнения к условию.
  • В цикле for оно переносит поток выполнения к финальному выражению в описании цикла.

Инструкция continue может использоваться вместе с необязательной меткой, которая будет начинать следующую итерацию отмеченного цикла, а не текущего. В этом случае, continue должен находиться внутри отмеченного блока, который соответствует метке.

Примеры

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

Пример показывает использование цикла while вместе с инструкцией continue, которая выполняется, когда i станет равно 3-м. Таким образом, n принимает значения 1, 3, 7 и 12.

js
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.

js
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);
}

Вывод:

js
"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";

Спецификации

Specification
ECMAScript Language Specification
# sec-continue-statement

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также