De continue-instructie in JavaScript
Er bestaat ook een instructie continue,
die een nieuwe iteratie van de lus start. Deze
instructie kan soms nuttig zijn voor het
vereenvoudigen van code, hoewel de taak
vrijwel altijd ook zonder kan worden opgelost. Laten we eens kijken
naar een praktisch voorbeeld.
Stel we hebben een array met getallen. Laten we
deze met een lus doorlopen en de getallen die deelbaar zijn door
2, kwadrateren en uitprinten
naar de console, en de getallen die deelbaar zijn door 3,
tot de derde macht verheffen en uitprinten
naar de console. Hier is de oplossing
van de beschreven taak:
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);
}
}
Zoals je ziet, wordt de regel console.log(result)
twee keer herhaald. Laten we deze er
uit halen, buiten de if,
zo:
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); // heeft de print buiten de conditie gehaald
}
Nu werkt ons script echter een beetje
anders: het resultaat is dat ook voor gewone elementen,
die niet via onze if zijn verwerkt,
de variabele result
naar de console wordt geprint, wat volgens de voorwaarden van onze taak niet
nodig is.
Laten we het probleem oplossen door aan onze if
een extra voorwaarde else toe te voegen,
die zal worden geactiveerd
voor elementen die niet deelbaar zijn door 2 en
3, en daar roepen we de instructie continue aan,
die ons onmiddellijk zal overbrengen
naar de nieuwe iteratie van de lus:
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; // gaat naar de nieuwe iteratie van de lus
}
console.log(result); // wordt uitgevoerd als deelbaar door 2 of 3
}
Schrijf een lus die alleen
de even getallen van 1 tot 100 toont,
en de oneven getallen overslaat met behulp van continue.