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 = 5 β†’ 1 + 2 + 3 + 4 + 5 = 15
  • n = 10 β†’ 1 + 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
  • Range β€” 1...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