JavaScript-da continue instruksiyasi
Shuningdek, tsiklning yangi iteratsiyasini boshlaydigan continue
instruksiyasi mavjud. Bu instruksiya ba'zan kodni soddalashtirish
uchun foydali bo'lishi mumkin, ammo amalda vazifani undan foydalanmasdan
ham hal qilish mumkin. Keling, amaliy misolni ko'rib chiqaylik.
Faraz qilaylik, bizda raqamlar massivi berilgan. Keling, uni tsikl
yordamida aylantiramiz va 2 ga bo'linadigan raqamlarni
kvadratga ko'tarib, konsolga chiqaramiz, 3 ga bo'linadigan
raqamlarni esa kubga ko'tarib, konsolga chiqaramiz. Vazifaning
yechimi:
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);
}
}
Ko'rib turganingizdek, console.log(result) qatori
ikki marta takrorlanmoqda. Keling, uni if dan
tashqariga olib chiqamiz, mana shunday:
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); // chiqarish shartdan tashqariga olindi
}
Biroq, endi bizning skriptimiz biroz boshqacha ishlaydi:
bizning if orqali qayta ishlanmagan oddiy elementlar
uchun ham result o'zgaruvchisini konsolga chiqarish
bajariladi, bu esa bizning vazifa shartimizga ko'ra kerak emas.
Muammoni if ga 2 va 3 ga bo'linmaydigan
elementlar uchun ishlaydigan yana bir else shartini
qo'shish va u yerda continue instruksiyasini chaqirish
orqali tuzatamiz, bu bizni darhol tsiklning yangi iteratsiyasiga
o'tkazadi:
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; // tsiklning yangi iteratsiyasiga o'tamiz
}
console.log(result); // 2 ga yoki 3 ga bo'linadigan bo'lsa bajariladi
}
continue yordamida toq sonlarni qoldirgan holda,
1 dan 100 gacha bo'lgan faqat juft sonlarni
chiqaradigan tsikl yozing.