- Published on
Swiftda switch operatori
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Switch - operatori bir nechta alternativalar ichidan kerakli kod blokini bajarishga imkon beradi.
Swift dasturlash tilida switch operatorining sintaksisi quyidagicha:
switch (ifoda) {
case value1:
// operatorlar
case value2:
// operatorlar
...
...
default:
// operatorlar
}
switch operatori qavs ichidagi ifodani baholaydi.
- Agar ifoda natijasi
value1ga teng bo'lsa,case value1:ichidagi operatorlar bajariladi. - Agar natija
value2ga teng bo'lsa,case value2:ichidagi operatorlar bajariladi. - Agar hech bir qiymat mos kelmasa,
defaultholatidagi operatorlar bajariladi.
Bu ishni
if...else...ifkonstruktsiyasi bilan ham bajarish mumkin. Ammoswitchoperatorining sintaksisi ancha ixcham va o'qish hamda yozish osonroq.
Switch operatorining oqim diagrammasi
switch operatori bizga ko'plab alternativalar ichidan kerakli kodni bajarish imkonini beradi.

Misol:
Yuqoridagi misolda dayOfWeek o'zgaruvchisiga 4 qiymati berilgan. Endi o'zgaruvchi har bir case qiymati bilan solishtiriladi.
Qiymat case 4 bilan mos kelgani uchun print("Wednesday") operatori bajariladi va dastur yakunlanadi.
Switch operatorida fallthrough
Agar fallthrough kalit so'zidan case ichida foydalansak, moslik bo'lmasa ham boshqaruv navbatdagi case bo'limiga o'tadi.
Yuqoridagi misolda 4 qiymati case 4 bilan mos kelganligi uchun print("Wednesday") bajariladi.
Shuningdek, fallthrough ishlatilgani sababli keyingi case 5 ichidagi print("Thursday") ham bajariladi, garchi moslik bo'lmasa ham.
Switch operatorida Range ishlatish
Misol:
Bu misolda har bir case bitta qiymat emas, balki butun oraliqni o'z ichiga oladi: 0...16, 17...30, 31...45.
ageGroup ning qiymati 33 bo'lgani uchun u 31...45 oraliqiga tushadi va print("Middle-aged Adults") bajariladi.
Switch operatorida tuple ishlatish
Swift tilida switch operatorida tuplardan ham foydalanish mumkin.
Bu misolda info nomli tuple yaratilgan: "Dwight" va 38.
Har bir case ham to'liq tuple bilan berilgan: case ("Dwight", 38) va case ("Micheal", 46).
info qiymati ("Dwight", 38) bilan mos tushgani uchun print("Dwight is 38 years old") bajariladi.
Tuple haqida ko'proq bilish uchun Swiftda Tuple bo'limiga qarang.
π Masalalarni qanday yechish kerak?
β Namuna: 1-masala yechimi
Masala: Son beriladi (1-7). Hafta kuni raqamini qaytaring. Noto'g'ri son uchun 0 qaytaring.
Bosqichma-bosqich yechim:
1-qadam: Masalani tushunish
day = 1β1(Dushanba)day = 7β7(Yakshanba)day = 10β0(noto'g'ri)
2-qadam: switch bilan yechish
Range operatoridan foydalanib, barcha to'g'ri qiymatlarni bitta case da tekshirishimiz mumkin:
switch day {
case 1...7:
return day
default:
return 0
}
3-qadam: To'liq yechim
Natija: Barcha testlar o'tadi β
Izoh:
case 1...7:β 1 dan 7 gacha bo'lgan barcha sonlarni ushlaydi- Bu range ichida bo'lsa, o'sha sonni qaytaramiz
defaultβ 1-7 dan tashqari barcha sonlar uchun 0 qaytariladi- Range operatori kodni juda ixcham qiladi
Xulosa
- switch β ko'p alternativalardan birini tanlash
- case β har bir tanlov
- default β hech bir case mos kelmasa
- fallthrough β keyingi case ga o'tish
- Range β
1...10oraliqlarni tekshirish - Tuple β bir nechta qiymatni birga tekshirish