JavaScript'da sikllar: for, while, do...while, for...of, for...in, break va continue boshqaruvi, cheksiz sikl xatosi hamda to'liq mashq va testlar.
Bir xil kodni bir necha marta takrorlash kerak bo'lganda loop (sikl) ishlatiladi. Bu bobda barcha asosiy loop turlarini o'rganamiz.
for — aniq necha marta takrorlanishi ma'lum bo'lgan holatlar uchun eng ko'p ishlatiladigan loop.
Agar 1 dan 100 gacha sonni chiqarish kerak bo'lsa, buni qo'lda 100 marta yozish o'rniga, loop orqali bir necha qatorda yechish mumkin.
🔁 Loop — bu konveyer liniyasi: bir xil ish har bir mahsulot uchun avtomatik takrorlanadi.
script.jsJavaScriptfor (let i = 1; i <= 5; i++) {console.log(i);}
let i = 1 — boshlang'ich qiymat.i <= 5 — shart tekshiriladi, true bo'lsa loop davom etadi.console.log(i) — kod bajariladi.i++ — qiymat oshiriladi, keyin qaytadan 2-qadamga o'tiladi.code.textTEXTi = 1 → shart true → bajarish → i++↓i = 2 → shart true → bajarish → i++↓...↓i = 6 → shart false → loop to'xtaydi
while — shart true bo'lgan ekan, loop davom etadi. Necha marta takrorlanishi oldindan noma'lum bo'lganda ishlatiladi.
script.jsJavaScriptlet count = 0;while (count < 3) {console.log(count);count++;}
⚠️ Common Mistake
count++ ni yozishni unutish — bu infinite loop (cheksiz sikl) ga olib keladi va dastur "osilib qoladi".
whilega o'xshaydi, lekin kod avval kamida bir marta bajariladi, keyin shart tekshiriladi.
script.jsJavaScriptlet num = 10;do {console.log(num);num++;} while (num < 5);
Shart (num < 5) noto'g'ri bo'lsa ham, kod bir marta ishga tushadi, chunki shart faqat blokdan keyin tekshiriladi.
💡 Key Idea
do...while — kamida bitta bajarilishni kafolatlaydigan yagona loop turi.
Array yoki boshqa iterable (masalan, string) elementlarini birma-bir aylanib chiqish uchun ishlatiladi.
script.jsJavaScriptlet fruits = ["olma", "banan", "uzum"];for (let fruit of fruits) {console.log(fruit);}
for...of har bir elementning qiymatini to'g'ridan-to'g'ri beradi, index emas.
Object'ning barcha key (kalit)larini aylanib chiqish uchun ishlatiladi.
script.jsJavaScriptlet person = { name: "Ali", age: 25, city: "Toshkent" };for (let key in person) {console.log(key, person[key]);}
| Feature | for...of | for...in |
|---|---|---|
| Ishlatiladi | Array, String | Object |
| Qaytaradi | Qiymat | Key (kalit) |
⚠️ Common Mistake
for...inni Array bilan ishlatish — bu ishlaydi, lekin tavsiya etilmaydi, chunki index'lar string sifatida qaytadi va tartib kafolatlanmaydi.
break — loopni butunlay to'xtatadi.continue — joriy iteratsiyani o'tkazib yuboradi, loop davom etadi.script.jsJavaScriptfor (let i = 1; i <= 5; i++) {if (i === 3) {continue;}if (i === 5) {break;}console.log(i);}// Natija: 1, 2, 4
i === 3 bo'lganda continue ishga tushadi — console.log o'tkazib yuboriladi.i === 5 bo'lganda break ishga tushadi — loop butunlay to'xtaydi.Task:
for loop yordamida 1 dan 10 gacha bo'lgan sonlarni konsolga chiqaring.
Required Concepts:
for loopi <= 10 shartidan foydalaning.Task:
Berilgan array ichidagi barcha sonlarning yig'indisini for...of yordamida hisoblang:
script.jsJavaScriptlet numbers = [4, 8, 15, 16, 23, 42];
Required Concepts:
for...ofsum = 0 deb variable yarating, har bir elementni unga qo'shib boring.Task:
1 dan 50 gacha bo'lgan sonlar ichidan faqat 3 ga yoki 5 ga bo'linadiganlarini chiqaring, lekin 40 dan katta bo'lganda loopni to'xtating.
Required Concepts:
for loopbreaknum % 3 === 0 || num % 5 === 0 shartidan foydalaning.script.jsJavaScriptfor (let i = 0; i < 3; i++) {if (i === 1) continue;console.log(i);}
🧠 Think first! Javobni ko'rishdan oldin kamida 30 soniya o'ylang.
<details> <summary>Answer</summary> 0 2Why?
i === 1 bo'lganda continue ishga tushib, o'sha iteratsiyadagi console.log bajarilmay o'tkazib yuboriladi, lekin loop davom etadi.
Quyidagi kodda muammo bor:
script.jsJavaScriptlet i = 0;while (i < 5) {console.log(i);}
Your Task:
Yechim:
</details>script.jsJavaScriptlet i = 0;while (i < 5) {console.log(i);i++;}
for — aniq son marta takrorlash uchun.while — shartga asoslangan, noma'lum son marta takrorlash uchun.do...while — kamida bir marta bajarilishi kafolatlangan loop.for...of — array/string qiymatlari uchun.for...in — object kalitlari uchun.break — to'xtatadi, continue — o'tkazib yuboradi.for...of, object uchun for...in ishlating.do...while kamida bir marta ishlashi kerak bo'lganda foydali.break va continue — loop oqimini nazorat qilish uchun kuchli vositalar.map, forEach kabi metodlar for o'rniga ishlatiladi (Chapter 15'da o'rganiladi).script.jsJavaScriptfor (let i = 0; i < n; i++) { }while (shart) { }do { } while (shart);for (let item of array) { }for (let key in object) { }break; // to'xtatishcontinue; // o'tkazib yuborish
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslikda o‘rganilgan qoidalarga asosan real kod yozing, testlardan o‘tkazing va yechimlarni mustahkamlang.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Masalalar
0 / 3 ta yechildi (kamida 75% kerak)
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: