Published on

Swiftda Ichma-ich Looplar (Nested Loops)

Authors

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:

// Swift program to display 7 days of 2 weeks

// outer loop
for week in 1...2 {
    print("Week: \(week)")

    // inner loop
    for day in 1...7 {
        print("  Day:  \(day)")
    }

    // bo'sh qator
    print("")
}

Natija:

Week: 1
  Day:  1
  Day:  2
...

Week: 2
  Day:  1
  Day:  2
...

Tushuntirish:

  • Tashqi loop → 2 marta ishlaydi (week = 1 va week = 2).
  • Ichki loop → har bir haftada 7 marta ishlaydi (day = 1 dan 7 gacha).

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:

// program to display 7 days of 2 weeks
var weeks = 2
var i = 1

// outer while loop
while (i <= weeks) {
    print("Week: \(i)")

    // inner for loop
    for day in 1...7 {
        print("  Day:  \(day)")
    }

    i = i + 1
}

Natija:

Week: 1
  Day:  1
  Day:  2
...

Week: 2
  Day:  1
  Day:  2
...

4. break va continue ichma-ich looplarda

1. break — faqat ichki loopni to‘xtatadi

Misol:

for week in 1...3 {
    print("Week: \(week)")

    for day in 1...7 {
        if week == 2 {
            break
        }
        print("  Day:  \(day)")
    }

    print("")
}

Natija:

Week: 1
  Day:  1
  Day:  2
...

Week: 2

Week: 3
  Day:  1
  Day:  2
...

Izoh:

  • week == 2 bo‘lganda ichki loop darhol to‘xtaydi.
  • Tashqi loop esa davom etadi.

2. continue — ichki loopning faqat o‘sha iteratsiyasini o‘tkazadi

Misol:

for week in 1...2 {
    print("Week: \(week)")

    for day in 1...7 {

        if day % 2 != 0 { // agar kun toq bo'lsa
            continue      // chiqarib o'tkaz
        }

        print("  Day:  \(day)")
    }

    print("")
}

Natija:

Week: 1
  Day:  2
  Day:  4
  Day:  6

Week: 2
  Day:  2
  Day:  4
  Day:  6

Izoh:

  • Toq kunlar (1,3,5,7) continue tufayli chiqarilmaydi.
  • Faqat juft kunlar chop qilinadi.