Инструкција 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.