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:

// massivdagi elementlarga murojaat qilish
let languages = ["Swift", "Java", "Go", "JavaScript"]

for language in languages {
      print(language)
}

Natija:

Swift
Java
Go
JavaScript

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.

// arraydan Java ni olib tashlash
let languages = ["Swift", "Java", "Go", "JavaScript"]

for language in languages where language != "Java" {
  print(language)
}

Natija:

Swift
Go
JavaScript

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:

// i = 1 dan i = 3 gacha takrorlash
for i in 1...3 {
    print(i)
}

Natija:

1
2
3

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.

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

Natija:

1
3
5
7
9

Bu misolda:

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