- 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