Instrukcija continue u JavaScript-u
Postoji i instrukcija continue,
koja pokreće novu iteraciju petlje. Ova
instrukcija ponekad može biti korisna za
pojednostavljenje koda, iako se zadatak
gotovo uvek može rešiti i bez nje. Pogledajmo
na praktičnom primeru.
Pretpostavimo da imamo niz brojeva. Hajde da
ga prođemo petljom i brojeve koji su deljivi
sa 2, podignemo na kvadrat i ispišemo
u konzolu, a brojeve koji su deljivi sa 3,
podignemo na kub i ispišemo u konzolu. Evo rešenja
opisanog zadatka:
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);
}
}
Kao što vidite, linija console.log(result)
se ponavlja dva puta. Hajde da je izvučemo
van if, ovako:
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); // izvukli smo ispis van uslova
}
Međutim, sada naš skript radi malo
drugačije: ispostaviće se da će i za obične elemente,
koje nismo obradili preko našeg if, biti
izvršen ispis promenljive result
u konzolu, što prema uslovu našeg zadatka nije
potrebno.
Popravićemo problem dodavanjem našem if
još jednog uslova else, koji će se aktivirati
za elemente koji nisu deljivi sa 2 i
3, i pozvaćemo tu instrukciju continue,
koja će nas odmah prebaciti
na novu iteraciju petlje:
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; // prelazimo na novu iteraciju petlje
}
console.log(result); // izvršiće se ako je deljiv sa 2 ili 3
}
Napišite petlju koja će ispisati samo
parne brojeve od 1 do 100,
preskačući neparne pomoću continue.