Оператор continue в JS

В этой статье вы познакомитесь с оператором continue. 

Оператор continue пропускает текущую итерацию цикла и передает управление следующей итерации.

Синтаксис

continue [label];

Примечание. Параметр label — опциональный. На практике он редко используется. Подробнее о нем можно использовать в официальной документации JavaScript.

Как это работает

continue с циклом for

В цикле for оператор continue пропускает текущую итерацию и сразу переходит к обновлению счетчика.

Пример. Выводим числа от 1 до 5 с пропуском 3

for (let i = 1; i <= 5; i++) {
    // условие для continue    
    if (i == 3) {
        continue;
    }
    console.log(i);
}

Вывод

1
2
4
5

В этой программе мы на каждой итерации цикла for выводим текущее значение i.

Подробнее остановимся на использовании continue в этой программе:

if (i == 3) {
    continue;
}
Как это работает
  • Когда i становится равным 3, оператор continue пропускает текущую, то есть третью, итерацию.
  • Затем i становится равным 4, и условие оценивается снова. i уже не равно 3, поэтому в блок кода с continue программа не зайдет. 
  • В итерации i = 5 аналогично — в блок continue программа не заходит. 

continue с циклом while

В цикле while оператор continue пропускает текущую итерацию и переходит обратно к оценке условия while.

В цикле do...while оператор continue работает аналогично.

Пример. Подсчет суммы неотрицательных чисел, введенных пользователем

// если пользователь введет отрицательное число, завершить подсчет суммы
// если пользователь введет последовательность символов, которая не является числом, пропустить эту итерацию

let sum = 0;
let number = 0;

// проверяем, неотрицательное ли число введено
while (number >= 0) {

    // складываем все положительные числа
    sum += number;

    // ввод числа пользователем
    number = parseInt(prompt("Введите число: "));

    // условие для continue
    // проверяем, является ли введенная строка числом 
    if (isNaN(number)) {
        console.log("Вы ввели не число.");
        number = 0; // number снова как 0
        continue;
    }
}

// выводим итоговую сумму
console.log(`Сумма введенных положительных чисел: ${sum}.`);

Вывод

Введите число: 1
Введите число: 2
Введите число: привет
Вы ввели не число.
Введите число: 5
Введите число: -2
Сумма введенных положительных чисел: 8.

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

Подробнее остановимся на использовании continue в этой программе:

if (isNaN(number)) {
    continue;
}
Как это работает
  • Когда пользователь вводит строку, которая не является числом, оператор continue пропускает текущую итерацию.
  • Затем поток управления программы переходит к условию цикла while.
  • Когда пользователь вводит число меньше 0, цикл завершается.

Примечание. Чтобы проверить, является ли строка числом, мы использовали метод isNaN().

continue с вложенным циклом

Когда continue используется внутри двух вложенных циклов, continue пропускает текущую итерацию внутреннего цикла. Например,

// внешний цикл for
for (let i = 1; i <= 3; i++) {

    // внутренний цикл for
    for (let j = 1; j <= 3; j++) {
        if (j == 2) {
          continue;
        }
        console.log(`i = ${i}, j = ${j}`);
    }
}

Вывод

i = 1, j = 1
i = 1, j = 3
i = 2, j = 1
i = 2, j = 3
i = 3, j = 1
i = 3, j = 3

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

Следовательно, значение j = 2 никогда не будет выводиться на экран.

codechick

СodeСhick.io - простой и эффективный способ изучения программирования.

2024 ©