Inštrukcia continue v JavaScripte
Existuje aj inštrukcia continue,
ktorá spúšťa novú iteráciu cyklu. Táto
inštrukcia môže byť niekedy užitočná pre
zjednodušenie kódu, hoci úlohu je takmer
vždy možné vyriešiť aj bez nej. Pozrime sa
na praktický príklad.
Majme pole s číslami. Prejdime ho cyklom
a čísla, ktoré sú deliteľné 2, umocnime
na druhú a vypíšme do konzoly, a čísla, ktoré sú deliteľné 3,
umocnime na tretiu a vypíšme do konzoly. Tu je riešenie
opisanej úlohy:
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);
}
}
Ako vidíte, riadok console.log(result)
sa opakuje dva krát. Vynesme ho
mimo if, takto:
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); // výpis bol vynesený mimo podmienku
}
Teraz však náš skript funguje trochu
inak: vyjde nám, že aj pre obyčajné prvky,
spracované cez náš if bude
prebiehať výpis premennej result
do konzoly, čo podľa podmienky našej úlohy
nechceme.
Opravme problém pridaním k nášmu if
ďalšej podmienky else, ktorá bude platiť
pre prvky, ktoré nie sú deliteľné 2 a
3, a zavolajme tam inštrukciu continue,
ktorá nás okamžite prehodí
na novú iteráciu cyklu:
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; // prejdeme na novú iteráciu cyklu
}
console.log(result); // vykoná sa, ak je deliteľné 2 alebo 3
}
Napíšte cyklus, ktorý vypíše len
párne čísla od 1 do 100,
pričom pomocou continue preskočí nepárne.