- Published on
Swiftda ichma-ich looplar (Nested loops)
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Agar bitta loopning ichida yana boshqa loop bo'lsa, bu nested loop (ichma-ich loop) deyiladi.
Misol:
// tashqi loop
for i in 1...5 {
// ichki loop
for j in 1...2 {
// code
}
}
Bu yerda j bo'yicha for-loop — i bo'yicha for-loopning ichida joylashgan.
1. Swift nested for loop
Quyidagi misolda biz 2 hafta ichidagi 7 kunni chiqaramiz:
Tushuntirish:
- Tashqi loop → 2 marta ishlaydi (
week = 1vaweek = 2). - Ichki loop → har bir haftada 7 marta ishlaydi (
day = 1dan7gacha).
2. Nested while va repeat…while Looplar
Looplar faqat for-loop bilan emas, while yoki repeat…while bilan ham ichma-ich ishlatilishi mumkin.
Misol:
// outer while loop
while condition {
// inner while loop
while condition2 {
// code
}
}
3. for Loop ichida while Loop
Quyidagi misolda biz while loop tashqarida, for loop ichkarida ishlatamiz:
4. break va continue ichma-ich looplarda
1. break — faqat ichki loopni to'xtatadi
Misol:
Izoh:
week == 2bo'lganda ichki loop darhol to'xtaydi.- Tashqi loop esa davom etadi.
2. continue — ichki loopning faqat o'sha iteratsiyasini o'tkazadi
Misol:
Izoh:
- Toq kunlar (
1,3,5,7) continue tufayli chiqarilmaydi. - Faqat juft kunlar chop qilinadi.
📚 Masalalarni qanday yechish kerak?
✅ Namuna: 1-masala yechimi
Masala: n sonining ko'paytirish jadvalini yig'indisi sifatida qaytaring. Ya'ni n1 + n2 + ... + n*10.
Bosqichma-bosqich yechim:
1-qadam: Masalani tushunish
n = 5→5*1 + 5*2 + 5*3 + ... + 5*10 = 5 + 10 + 15 + ... + 50 = 275- Bu aslida
n * (1+2+3+...+10) = n * 55
2-qadam: Nested loop yoki oddiy loop
Aslida bu masala bitta loop bilan ham yechiladi:
var sum = 0
for i in 1...10 {
sum += n * i
}
3-qadam: To'liq yechim
Natija: Barcha testlar o'tadi ✅
Izoh:
n * 1 + n * 2 + ... + n * 10 = n * (1 + 2 + ... + 10) = n * 55- Loop bilan har bir ko'paytmani qo'shib boramiz
- Bu masala nested loop talab qilmaydi, lekin nested loop mavzusini tushunish uchun foydali
Alternativ:
return n * 55— to'g'ridan-to'g'ri formula
Xulosa
- Nested loop — loop ichida loop
- Tashqi loop — birinchi bajariladi
- Ichki loop — har bir tashqi iteratsiyada to'liq ishlaydi
- break — faqat o'sha loopni to'xtatadi
- continue — faqat o'sha iteratsiyani o'tkazadi
- Label — tashqi loopni to'xtatish uchun