A continue utasítás a JavaScript-ben
Létezik egy continue utasítás is,
amely egy új ciklusiterációt indít el. Ez az
utasítás néha hasznos lehet a kód
egyszerűsítésére, bár a feladatot szinte
mindig meg lehet oldani nélküle is. Nézzünk
egy gyakorlati példát.
Tegyük fel, hogy van egy számokat tartalmazó tömbünk.
Végigiterálunk rajta egy ciklussal, és a 2-vel
osztható számokat négyzetre emeljük és kiírjuk
a konzolra, a 3-mal osztható számokat
köbre emeljük és kiírjuk a konzolra. Íme a
leírt feladat megoldása:
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);
}
}
Amint látod, a console.log(result)
sor kétszer ismétlődik. Vegyük ki az
if feltételblokkokon kívülre, így:
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); // kivettük a kiírást a feltételek közül
}
Most azonban a szkriptünk kissé másképp
működik: kiderül, hogy a rendes elemekre is,
amelyeket nem dolgoztunk fel a mi if
utasításunkkal, végrehajtódik a result
változó kiírása a konzolra, ami a feladat
feltételei szerint nem szükséges számunkra.
Javítsuk a problémát úgy, hogy hozzáadunk
a mi if-ünkhöz egy else
ágat, amely azokra az elemekre aktiválódik,
amelyek nem oszthatók 2-vel és
3-mal, és ott meghívjuk a
continue utasítást, amely azonnal
egy új ciklusiterációra ugrik:
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; // új ciklusiterációra ugrunk
}
console.log(result); // csak akkor fut le, ha osztható 2-vel vagy 3-mal
}
Írj egy ciklust, amely csak a 1-től
100-ig terjedő páros számokat írja ki,
a páratlanokat a continue használatával kihagyva.