- 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:
// hafta kunini aniqlash dasturi
let dayOfWeek = 4
switch dayOfWeek {
case 1:
print("Sunday")
case 2:
print("Monday")
case 3:
print("Tuesday")
case 4:
print("Wednesday")
case 5:
print("Thursday")
case 6:
print("Friday")
case 7:
print("Saturday")
default:
print("Invalid day")
}
Natija
Wednesday
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.
// hafta kunini topish dasturi
let dayOfWeek = 4
switch dayOfWeek {
case 1:
print("Sunday")
case 2:
print("Monday")
case 3:
print("Tuesday")
case 4:
print("Wednesday")
fallthrough
case 5:
print("Thursday")
case 6:
print("Friday")
case 7:
print("Saturday")
default:
print("Invalid day")
}
Natija
Wednesday
Thursday
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.
Misol:
let ageGroup = 33
switch ageGroup {
case 0...16:
print("Child")
case 17...30:
print("Young Adults")
case 31...45:
print("Middle-aged Adults")
default:
print("Old-aged Adults")
}
Natija
Middle-aged Adults
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.
let info = ("Dwight", 38)
// to‘liq tuple qiymatlarini taqqoslash
switch info {
case ("Dwight", 38):
print("Dwight is 38 years old")
case ("Micheal", 46):
print("Micheal is 46 years old")
default:
print("Not known")
}
Natija
Dwight is 38 years old
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.