Navodila continue v JavaScript
Obstaja tudi navodilo continue,
ki začne novo ponovitev zanke. To navodilo
je lahko včasih uporabno za poenostavitev kode,
čeprav je nalogo skoraj vedno mogoče rešiti
brez nje. Oglejmo si praktični primer.
Recimo, da imamo dano polje s števili. Ponovimo
ga z zanko in števila, ki so deljiva
z 2, povišajmo na kvadrat in izpišimo
v konzolo, števila, ki so deljiva z 3,
pa povišajmo na kubo in izpišimo v konzolo. Tukaj je rešitev
opisane naloge:
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);
}
}
Kot lahko vidite, se vrstica console.log(result)
ponovi dvakrat. Izločimo jo
izven if, takole:
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); // izpis smo premaknili izven pogoja
}
Vendar pa naš skript zdaj deluje nekoliko
drugače: izkazalo se bo, da se bo tudi za običajne elemente,
ki niso bili obdelani z našim if, izvedel
izpis spremenljivke result
v konzolo, kar po pogojih naše naloge ne
potrebujemo.
Popravimo težavo tako, da našemu if
dodamo še pogoj else, ki se bo sprožil
za elemente, ki niso deljivi z 2 in
3, in tam poklicali navodilo continue,
ki nas bo takoj preusmerilo
na novo ponovitev zanke:
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; // preidemo na novo ponovitev zanke
}
console.log(result); // izvede se, če je deljivo z 2 ali 3
}
Napišite zanko, ki bo izpisala samo
soda števila od 1 do 100,
z uporabo continue pa preskočila liha.