Published on

Swiftda for-in loop

Authors

Dasturlashda looplar (takrorlash operatorlari) kod blokini qayta-qayta bajarish uchun ishlatiladi.

Masalan, bir xabarni 100 marta chiqarish kerak bo'lsa, loopdan foydalanamiz. Bu oddiy misol — looplar yordamida bundan ancha murakkab ishlarni ham bajarish mumkin.

Swift tilida 3 xil loop mavjud:

  • for-in loop
  • while loop
  • repeat...while loop

for-in loop nima?

Swift tilida for-in loop ma'lum bir ketma-ketlik (array, range, string va boshqalar) ustida takroriy o'tish uchun ishlatiladi.

for-in loop sintaksisi:

for val in sequence {
    // operatorlar
}

Bu yerda val har bir takrorlanishda sequence ichidagi navbatdagi elementni oladi. Loop ketma-ketlikdagi oxirgi elementgacha davom etadi.

for-in loopning oqim diagrammasi

for

Misol:

Swift
for-in loop bilan array
// massivdagi elementlarga murojaat qilish let languages = ["Swift", "Java", "Go", "JavaScript"] for language in languages { print(language) }

Ushbu misolda languages nomli array yaratilgan.

  • Dastlab language qiymati arrayning birinchi elementi — Swift bo'ladi va print bajariladi.
  • Keyin language navbatdagi elementga yangilanadi va loop yana bajariladi.
  • Bu jarayon arrayning oxirgi elementi o'tilguncha davom etadi.

for-in loop + where sharti

Swift tilida for-in loop bilan birga where qo'shimchasidan foydalanish mumkin. Bu loop ichida filtrlash vazifasini bajaradi: where ichidagi shart true bo'lsa, loop bajariladi.

Swift
for-in loop + where
// arraydan Java ni olib tashlash let languages = ["Swift", "Java", "Go", "JavaScript"] for language in languages where language != "Java" { print(language) }

Tushuntirish:

for language in languages where language != "Java"

Agar where ichidagi shart true qaytarsa, loop bajariladi, aks holda bajarilmaydi.

Quyidagi tarzda ishlaydi:

  • 1-takrorlash: Swift → shart true → ekranga chiqariladi
  • 2-takrorlash: Java → shart false → chiqarilmaydi
  • 3-takrorlash: Go → shart true → chiqariladi
  • 4-takrorlash: JavaScript → shart true → chiqariladi

Range bilan for loop

Range — ikki son oralig'idagi qiymatlar ketma-ketligi.

Masalan:

var values = 1...3

Bu 1, 2, 3 qiymatlarini o'z ichiga olgan range.

Swiftda range ustida loopni quyidagicha yozamiz:

Swift
Range bilan for-in loop
// i = 1 dan i = 3 gacha takrorlash for i in 1...3 { print(i) }

Tushuntirish:

  • i = 1 → chiqariladi → 2 bo'ladi
  • i = 2 → chiqariladi → 3 bo'ladi
  • i = 3 → chiqariladi → 4 bo'ladi
  • i = 4 → range tugagan → loop to'xtaydi

stride funksiyasi bilan for loop

Agar loopni har safar ma'lum qadamlarda oshirib borishni istasak (masalan, 1, 3, 5, 7…), range emas, stride(from:to:by:) funksiyasidan foydalanamiz.

Swift
stride funksiyasi bilan loop
for i in stride(from: 1, to: 10, by: 2) { print(i) }

Bu misolda:

  • Loop 1 dan 10 gacha (10 kirmaydi) yuradi
  • Har bir takrorlanishda i 2 taga oshiriladi

📚 Masalalarni qanday yechish kerak?

✅ Namuna: 1-masala yechimi

Masala: 1 dan n gacha bo'lgan sonlar yig'indisini qaytaring.

Bosqichma-bosqich yechim:

1-qadam: Masalani tushunish

  • n = 51 + 2 + 3 + 4 + 5 = 15
  • n = 101 + 2 + ... + 10 = 55

2-qadam: for-in loop bilan yechish

var sum = 0
for i in 1...n {
    sum += i
}
return sum

3-qadam: To'liq yechim

Swift
1-masala yechimi
func solve(_ n: Int) -> Int { var sum = 0 for i in 1...n { sum += i } return sum } // Tekshirish print(solve(5)) // 15 print(solve(10)) // 55 print(solve(1)) // 1 print(solve(100)) // 5050

Natija: Barcha testlar o'tadi ✅

Izoh:

  • sum = 0 — yig'indini saqlash uchun o'zgaruvchi
  • for i in 1...n — 1 dan n gacha takrorlash
  • sum += i — har bir sonni yig'indiga qo'shish
  • Oxirida sum qaytariladi

Alternativ: Matematik formula bilan ham yechish mumkin: n * (n + 1) / 2


Xulosa

  • for-in — ketma-ketlik ustida takrorlash
  • Range1...5 (yopiq), 1..<5 (yarim ochiq)
  • where — loop ichida filtrlash
  • stride — ma'lum qadamlarda takrorlash
  • break — loopni to'xtatish
  • continue — joriy iteratsiyani o'tkazish
Buy mea coffee