- Published on
Swift-da for Loop'lardan qanday foydalanish kerak
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Hammaga yana xush kelibsiz!
Hammaga xush kelibsiz, mening ismim Nik, bu “Swiftful Thinking”. Biz Swift Basics Bootcampni deyarli yakunladik. Umid qilamanki, sizni yo‘qotmadim – kod yozishni o‘rganish qiyin, lekin bu pleylist buni osonlashtirishga yordam beryapti deb umid qilaman.
O‘tgan ikki videoda arraylar, setlar va dictionarylarni ko‘rdik – bularning barchasi to‘plamlar, ya’ni ko‘p ma’lumotni bir joyga yig‘ish usullari. Endi bu to‘plamdagi ma’lumotlarni qanday aylanib chiqish (loop) qilishni o‘rganamiz – masalan, har bir elementni tekshirish uchun.
Bu videoda for looplarga e’tibor qaratamiz – oddiy va murakkab misollarni ko‘ramiz. Video oxirida boshqa loop turlari (masalan, while) haqida qisqacha gaplashaman, lekin ular kam ishlatiladi va hozir ularga ko‘p vaqt sarflamaymiz. Keyingi videoda esa bu loop’larni yanada rivojlantirib, qulay usullarni ko‘ramiz – har safar qo‘lda yozmasdan, avtomatik usullar bilan.
Keling, kodga o‘tamiz va bir nechta for loop yozamiz!
Yana xush kelibsiz!
Pleylistning oxiriga yaqinlashdik – agar bu narsalar zerikarli bo‘lib tuyulsa, xavotirlanmang. Keyingi pleylist – SwiftUI Bootcamp – ancha qiziqarli, chunki biz UI (foydalanuvchi interfeysi) quramiz. UI’siz kod yozish ekransiz ishlagandan juda zerikarli, shuning uchun bu asoslarni o‘rganib, keyin qiziqarli qismga o‘tamiz.
O‘tgan ikki videoda array, set va dictionary’larni ko‘rdik. Endi bu to‘plamlardagi ma’lumotlarni qanday aylanib chiqishni o‘rganamiz.
Yangi fayl yarating: Navigator-da o‘ng tugma bilan bosing, yangi Playground sahifasini yarating va uni “For Loops” deb nomlang.
For Loops
/*
For Loops - Looping through collections
*/
Array’lar bilan ishlaymiz, chunki ular eng keng tarqalgan to‘plam turi – deyarli har bir ekranda array bo‘ladi.
Raqamlar bilan loop
for item in 0..<100 {
print(item)
}
for item in 0..<100– 0 dan 99 gacha aylanadi (100 marta).- Har bir aylanishda
itemqiymati o‘zgaradi: 0, 1, 2, ..., 99. ..<– oxirgi raqam kirmaydi. Agar 100 ni ham qo‘shmoqchi bo‘lsak:for x in 0...100 { // 0 dan 100 gacha (101 marta) print(x) }- Kodda odatda 0 dan boshlash ko‘proq ishlatiladi, chunki array indekslari 0 dan boshlanadi.
Ma’lumotlar array’i bilan loop
let myArray: [String] = ["Alpha", "Beta", "Gamma", "Delta", "Epsilon"]
for item in myArray {
print(item)
}
for item in myArray– array’dagi har bir elementni aylanadi: Alpha, Beta, Gamma, Delta, Epsilon.- Hozir hech narsa qilmayapmiz, lekin real kodda ma’lumotni o‘zgartirish uchun ishlatamiz.
Ma’lumotni tekshirish
var secondArray: [String] = []
for item in myArray {
if item == "Gamma" {
secondArray.append(item)
}
}
print(secondArray) // ["Gamma"]
if– “Gamma”ni topib, yangi array’ga qo‘shadi.- Natija:
secondArrayfaqat “Gamma”ni o‘z ichiga oladi.
Murakkab misol
struct LessonModel {
let title: String
let isFavorite: Bool
}
let allLessons: [LessonModel] = [
LessonModel(title: "Lesson 1", isFavorite: true),
LessonModel(title: "Lesson 2", isFavorite: false),
LessonModel(title: "Lesson 3", isFavorite: false),
LessonModel(title: "Lesson 4", isFavorite: true)
]
var favoriteLessons: [LessonModel] = []
for lesson in allLessons {
if lesson.isFavorite {
favoriteLessons.append(lesson)
}
}
print(favoriteLessons) // [Lesson 1, Lesson 4]
- Sevimli darslarni filtrlaydi – “Lesson 1” va “Lesson 4” chiqadi.
Ekrandagi foydalanish: Instagram feed’ida postlar array bo‘lib, for post in posts ekranga joylashtiriladi.
Indekslar bilan loop (Enumerated)
for (index, lesson) in allLessons.enumerated() {
print("Index: \\(index) || Lesson: \\(lesson.title)")
}
.enumerated()– indeks va elementni birga qaytaradi.- Natija:
Index: 0 || Lesson: Lesson 1 Index: 1 || Lesson: Lesson 2 Index: 2 || Lesson: Lesson 3 Index: 3 || Lesson: Lesson 4 - Misol:
for (index, lesson) in allLessons.enumerated() { if index > 2 { print(lesson.title) // "Lesson 4" } }
Boshqaruv oqimi (Break & Continue)
Break
for (index, lesson) in allLessons.enumerated() {
if index == 1 {
break
}
print("Index: \\(index) || Lesson: \\(lesson.title)")
}
break– indeks 1 ga yetganda loop to‘xtaydi.- Natija: Faqat
Index: 0 || Lesson: Lesson 1chiqadi.
Continue
for (index, lesson) in allLessons.enumerated() {
if index == 1 {
continue
}
print("Index: \\(index) || Lesson: \\(lesson.title)")
}
continue– indeks 1 ni o‘tkazib yuboradi, lekin loop davom etadi.- Natija:
Index: 0 || Lesson: Lesson 1 Index: 2 || Lesson: Lesson 3 Index: 3 || Lesson: Lesson 4 - Eslatma:
breakvacontinuekam ishlatiladi, lekin farqni bilish muhim.
Boshqa loop turlari
/*
Learn more: <https://docs.swift.org/swift-book/documentation/the-swift-programming-language/controlflow/>
- While loops
- Repeat-while loops
*/
while: Shart bajarilguncha aylanadi.repeat-while: Bir marta bajarib, keyin shartni tekshiradi.- iOS ilovalarida kam ishlatiladi – o‘yinlarda ko‘proq uchraydi.
- For loop’lar eng keng tarqalgan – ularga ko‘nikish muhim.
Xulosa
Endi siz array yoki boshqa to‘plamlarni qanday aylanib chiqishni bilasiz. Keyingi videoda sort va filter kabi qulay usullarni ko‘ramiz – qo‘lda loop yozmasdan ma’lumotni o‘zgartirishni o‘rganamiz.
Men Nikman, bu “Swiftful Thinking”, keyingi videoda ko‘rishguncha!