Příkaz continue v JavaScriptu
Existuje také příkaz continue,
který spustí novou iteraci cyklu. Tento
příkaz může být někdy užitečný pro
zjednodušení kódu, i když úkol je
téměř vždy možné vyřešit i bez něj. Podívejme se
na praktický příklad.
Mějme pole s čísly. Projděme jej
cyklem a čísla, která jsou dělitelná
2, umocněme na druhou a vypišme
do konzole, a čísla, která jsou dělitelná
3, umocněme na třetí a vypišme do konzole. Zde je řešení
popsaného úkolu:
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);
}
}
Jak vidíte, řádek console.log(result)
se opakuje dvakrát. Vynesme jej
za 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); // přesunuli výpis za podmínku
}
Nyní však náš skript funguje trochu
jinak: vyjde najevo, že i pro běžné prvky,
nezpracované přes náš if, bude
proveden výpis proměnné result
do konzole, což podle podmínek našeho úkolu
nechceme.
Opravme problém přidáním k našemu if
ještě podmínky else, která se bude spouštět
pro prvky nedělitelné 2 a
3, a zavolejme tam příkaz continue,
který nás okamžitě přenese
na novou iteraci 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; // přejdeme na novou iteraci cyklu
}
console.log(result); // provedeno, pokud je dělitelné 2 nebo 3
}
Napište cyklus, který vypíše pouze
sudá čísla od 1 do 100,
a přeskočí lichá pomocí continue.