Инструкция continue в JavaScript

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

Пусть у нас дан массив с числами. Давайте переберем его циклом и числа, которые делятся на 2, возведем в квадрат и выведем в консоль, а числа, которые делятся на 3, возведем в куб и выведем в консоль. Вот решение описанной задачи:

javascriptlet arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

for (let elem of arr) {
  let result;
  
  if (elem % 2 === 0) {
    result = elem * elem;
    console.log(result);
    
  } else if (elem % 3 === 0) {
    result = elem * elem * elem;
    console.log(result);
    
  }
}

Как вы видите, строчка console.log(result) повторяется два раза. Давайте вынесем ее за if, вот так:

javascriptlet arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

for (let elem of arr) {
  let result;
  
  if (elem % 2 === 0) {
    result = elem * elem;
  } else if (elem % 3 === 0) {
    result = elem * elem * elem;
  }
  
  console.log(result); // вынесли вывод за условие
}

Теперь наш скрипт, однако, работает немного не так: получится, что и для обычных элементов, не обработанных через наш if будет выполнятся вывод переменной result в консоль, что по условию нашей задачи нам не нужно.

Поправим проблему, добавив к нашему if еще условие else, которое будет срабатывать для элементов, не делящихся на 2 и 3, и вызовем там инструкцию continue, которая сразу же будет перебрасывать нас на новую итерацию цикла:

javascriptlet arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

for (let elem of arr) {
  let result;
  
  if (elem % 2 == 0) {
    result = elem * elem;
  } else if (elem % 3 == 0) {
    result = elem * elem * elem;
  } else {
    continue; // перейдем на новую итерацию цикла
  }
  
  console.log(result); // выполнится, если делится на 2 или 3
}
Задание 1

Напишите цикл, который выведет только чётные числа от 1 до 100, пропуская нечётные с помощью continue.