Continue instrukcija JavaScript
Pastāv arī instrukcija continue,
kura sāk jaunu cikla iterāciju. Šī
instrukcija dažreiz var būt noderīga
koda vienkāršošanai, lai gan gandrīz vienmēr uzdevumu
var atrisināt arī bez tās. Apskatīsim
praktisku piemēru.
Pieņemsim, ka mums ir dots masīvs ar skaitļiem. Apskatīsim
to ar ciklu un skaitļus, kas dalās
ar 2, kāpināsim kvadrātā un izvadīsim
konsole, bet skaitļus, kas dalās ar 3,
kāpināsim kubā un izvadīsim konsolē. Lūk, risinājums
aprakstītajam uzdevumam:
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);
}
}
Kā jūs redzat, rinda console.log(result)
tiek atkārtota divas reizes. Izņemsim to
ārpus if, šādi:
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); // izvade pārvietota ārpus nosacījuma
}
Tomēr tagad mūsu skripts strādā nedaudz
savādāk: izrādīsies, ka arī parastajiem elementiem,
kas netika apstrādāti ar mūsu if, tiks
veikta mainīgā result izvade
konsolē, kas saskaņā ar mūsu uzdevuma nosacījumiem mums
nav vajadzīgs.
Izlabosim problēmu, pievienojot mūsu if
vēl nosacījumu else, kas tiks aktivizēts
elementiem, kas nedalās ar 2 un
3, un izsauksim tur instrukciju continue,
kura uzreiz pārsūtīs mūs
uz jaunu cikla iterāciju:
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; // pārejam uz jaunu cikla iterāciju
}
console.log(result); // izpildīsies, ja dalās ar 2 vai 3
}
Uzrakstiet ciklu, kas izvadīs tikai
pāra skaitļus no 1 līdz 100,
izlaižot nepāra skaitļus, izmantojot continue.