JavaScript да continue инструкцияси
Циклнинг янги такрорланишини бошлайдиган continue
инструкцияси ҳам мавжуд. Бу инструкция баъзан кодни
sоддалаштириш учун фойдали бўлиши мумкин, аммо
деб ҳисоблаш керакки, амалда вазифа унисиз ҳам
ечилиши мумкин. Келинг амалий мисол билан кўрамиз.
Бизда сонлар массиви берилган бўлсин. Келинг уни
цикл билан такрорлаймиз ва 2га бўлинадиган
сонларни квадратига кўтариб, консолга чиқарамиз,
3га бўлинадиган сонларни эса кубига
кўтариб, консолга чиқарамиз. Мана бу вазифанинг
ечими:
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);
}
}
Кўриб turganingizdek, console.log(result)
қатори икки марта такрорланмоқда. Келинг уни
if дан ташқарига олиб чиқайлик, мана бу:
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); // чиқаришни шартдан ташқарига олиб чиқдик
}
Энди бизнинг скриптимиз, бирок, бироз бошқча
ишлейди: натижада, бизнинг if орқали
ишлов берилмаган оддий элементлар учун ҳам
result ўзгарувчисини консолга чиқариш
бажарилади, бу эса бизнинг вазифамиз шартига
кўра бизга керак эмас.
Муаммони тузатамиз, бизнинг if га
2 ва 3 га бўлинмайдиган элементлар
учун ишлайдиган else шартини қўшамиз
ва у ерда continue инструкциясини чақирамиз,
бу бизни дароқ циклнинг янги такрорланишига
ўтказади:
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; // циклнинг янги такрорланишига ўтамиз
}
console.log(result); // 2 ёки 3 га бўлинса бажарилади
}
1 дан 100 гача бўлган фақат
жуфт сонларни чиқарувчи цикл ёзинг,
тоқ сонларни continue ёрдамида
қолдириб.