Инструкция continue в JavaScript
Съществува и инструкция continue,
която стартира нова итерация на цикъл. Тази
инструкция понякога може да бъде полезна за
опростяване на кода, въпреки че практически винаги задачата
може да бъде решена и без нея. Нека да разгледаме
практически пример.
Нека имаме масив с числа. Нека да го обходим с цикъл и числата, които се делят
на 2, да повдигнем на квадрат и да изведем
в конзолата, а числата, които се делят на 3,
да повдигнем на куб и да изведем в конзолата. Ето решението
на описаната задача:
let 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, ето така:
let 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,
която веднага ще ни прехвърля
към нова итерация на цикъла:
let 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 до 100,
пропускайки нечетните с помощта на continue.