Continue käsk JavaScriptis
Samuti on olemas <continue käsk,
mis käivitab tsükli uue iteratsiooni. See
käsk võib mõnikord olla kasulik koodi
lihtsustamiseks, kuigi peaaegu alati saab
ülesannet lahendada ka ilma selleta. Vaatame
praktilist näidet.
Olgu meil antud massiiv numbritega. Võtame
selle tsükliga läbi ja numbrid, mis jaguvad
2-ga, tõstame ruutu ja väljastame
konsooli, ning numbrid, mis jaguvad 3-ga,
tõstame kuupi ja väljastame konsooli. Siin on
kirjeldatud ülesande lahendus:
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);
}
}
Nagu näete, rida console.log(result)
kordub kaks korda. Võtame selle väljapoole
if tingimust, niimoodi:
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); // viisime väljundi tingimusest välja
}
Nüüd aga meie skript töötab veidi teisiti:
selgub, et ka tavalistele elementidele,
mida meie if-ga ei töödeldud, tehakse
muutuja result väljastamine
konsooli, mida meie ülesande tingimuse kohaselt
meil vaja pole.
Parandame probleemi, lisades oma if-le
veel tingimuse else, mis töötaks
elementide puhul, mis ei jagu 2-ga ega
3-ga, ja kutsume seal välja käsu continue,
mis kohe viiks meid
tsükli uuele iteratsioonile:
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; // läheme tsükli uuele iteratsioonile
}
console.log(result); // teostatakse, kui jagub 2 või 3-ga
}
Kirjutage tsükkel, mis väljastab ainult
paaris arvud 1 kuni 100,
jättes paaritud arvud vahele kasutades continue käske.