Оператор 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 никогда не будет выводиться на экран.