Published on

Swiftda while va repeat…while looplari

Authors

Dasturlashda looplar (takrorlash operatorlari) kod blokini qayta-qayta bajarish uchun ishlatiladi.
Masalan, bir xabarni 100 marta chiqarish kerak bo'lsa — loopdan foydalaniladi.

Oldingi bo'limda Swift for-in loopi bilan tanishdingiz. Endi while va repeat...while looplarini o'rganamiz.

while loop

Swift while loopi ma'lum bir shart bajarilgunga qadar kodni takroran bajaradi.

Sintaksis

while (condition) {
  // loop tanasi
}

Ishlash tartibi:

  • Shart qavs ichida tekshiriladi.
  • Agar shart true bo'lsa, loop tanasi bajariladi.
  • Keyin shart yana tekshiriladi.
  • Shart false bo'lguncha loop davom etadi.
  • Shart false bo'lsa — loop to'xtaydi.

while loopning oqim diagrammasi

while

Misol:

Swift
while loop
// 1 dan 5 gacha bo'lgan sonlarni chiqarish var i = 1, n = 5 while (i <= n) { print(i) i = i + 1 }

Loop qanday ishladi?

  • i = 1 → shart true → 1 chiqarildi → i = 2
  • i = 2 → shart true → 2 chiqarildi → i = 3
  • i = 3 → shart true → 3 chiqarildi → i = 4
  • i = 4 → shart true → 4 chiqarildi → i = 5
  • i = 5 → shart true → 5 chiqarildi → i = 6
  • i = 6 → shart false → loop to'xtadi

Misol:

Swift
while loop - game level
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) { if gameCompleted { print("You have passed level \(currentLevel)") currentLevel += 1 } } print("Level Ends")

Bu misolda while loop darajalar ketma-ket o'tilganini ekranga chiqaradi.

repeat...while loop

repeat...while loopi while loopga o'xshaydi, lekin eng muhim farq:

→ loop tanasi avval bir marta bajariladi, shundan keyin shart tekshiriladi.

Sintaksis

repeat {
  // loop tanasi
} while (condition)

Ishlash tartibi:

  1. Loop tanasi bir marta bajariladi.
  2. Keyin shart tekshiriladi.
  3. Agar shart true bo'lsa, tanasi yana bajariladi.
  4. Shart false bo'lganda loop to'xtaydi.

repeat...while loopning oqim diagrammasi

while

Misol:

Swift
repeat...while loop
// sonlarni chiqarish var i = 1, n = 5 repeat { print(i) i = i + 1 } while (i <= n)

Loop qanday ishladi?

  • i = 1 → shart tekshirilmaydi → 1 chiqariladi → i = 2
  • i = 2 → shart true → 2 chiqariladi → i = 3
  • i = 3 → shart true → 3 chiqariladi → i = 4
  • i = 4 → shart true → 4 chiqariladi → i = 5
  • i = 5 → shart true → 5 chiqariladi → i = 6
  • i = 6 → shart false → loop tugaydi

Cheksiz (infinite) while loop

Agar while sharti hech qachon false bo'lmasa, loop cheksiz ishlaydi:

Swift
Cheksiz loop (infinite loop)
while (true) { print("Endless Loop") }

Bu loop to'xtamaydi, chunki shart har doim true.

for va while looplar farqi

for-in loop

Takrorlanishlar soni oldindan ma'lum bo'lsa ishlatiladi.

for number in 1...5 {
   // loop tanasi
}

while loop

Takrorlanishlar soni noma'lum bo'lsa ishlatiladi.

while (condition) {
    // loop tanasi
}

repeat...while

while bilan bir xil, lekin tanasi avval bajariladi. Noma'lum takrorlanishlarda ishlatiladi.


📚 Masalalarni qanday yechish kerak?

✅ Namuna: 1-masala yechimi

Masala: Berilgan sonning nechta raqamdan iboratligini aniqlang.

Bosqichma-bosqich yechim:

1-qadam: Masalani tushunish

  • n = 123 → 3 ta raqam (1, 2, 3)
  • n = 5 → 1 ta raqam
  • n = 10000 → 5 ta raqam

2-qadam: Algoritm

Sonni 10 ga bo'lib boramiz va har safar hisoblagichni oshiramiz:

123 / 10 = 12 → count = 1
12 / 10 = 1   → count = 2
1 / 10 = 0    → count = 3

3-qadam: while loop bilan yechish

var num = n
var count = 0
while num > 0 {
    count += 1
    num /= 10
}

4-qadam: To'liq yechim

Swift
1-masala yechimi
func solve(_ n: Int) -> Int { if n == 0 { return 1 } var num = n var count = 0 while num > 0 { count += 1 num /= 10 } return count } // Tekshirish print(solve(123)) // 3 print(solve(5)) // 1 print(solve(10000)) // 5 print(solve(999999)) // 6

Natija: Barcha testlar o'tadi ✅

Izoh:

  • n == 0 alohida holat — 0 ham 1 ta raqamdan iborat
  • while num > 0 — son 0 dan katta bo'lguncha davom etadi
  • num /= 10 — oxirgi raqamni olib tashlaydi
  • count += 1 — har bir raqamni hisoblaymiz

Xulosa

  • while — shart avval tekshiriladi
  • repeat...while — tanasi avval bajariladi, keyin shart
  • Cheksiz loop — shart hech qachon false bo'lmasa
  • for-in — takrorlar soni ma'lum
  • while — takrorlar soni noma'lum
Buy mea coffee