Published on

Swiftda switch operatori

Authors

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 value1 ga teng bo‘lsa, case value1: ichidagi operatorlar bajariladi.
  • Agar natija value2 ga teng bo‘lsa, case value2: ichidagi operatorlar bajariladi.
  • Agar hech bir qiymat mos kelmasa, default holatidagi operatorlar bajariladi.

Bu ishni if...else...if konstruktsiyasi bilan ham bajarish mumkin. Ammo switch operatorining 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.

switch

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.