دستور شرطی Switch در سوئیفت

زمان مطالعه : ۴ دقیقه
آخرین بروزرسانی : ۰۷ اسفند ۱۴۰۰
آموزش دستور switch در زبان سوئیفت و کاربرد آن در برنامه نویسی

در جلسه قبل با دستور شرطی if آشنا شدیم، در این جلسه میخواهیم با یک نوع دیگر از دستورات شرطی آشنا بشویم، حالت های زیر را در نظر بگیرید.

  1. اگر عدد 1 بود چاپ شود one
  2. اگر عدد 2 بود چاپ شود two
  3. اگر عدد 3 بود چاپ شود three
  4. اگر عدد 4 بود چاپ شود four
  5. اگر عدد 5 بود چاپ شود five

بنظرتون نوشتن چنین برنامه ای با if امکان پذیر است؟ بله! امکان پذیر است اما برنامه شما اصلا ظاهر خوبی پیدا نمیکند و برای مثال اگر بخواهید اعداد یک تا ده را چاپ کنید که خیلی نامرتب تر هم میشود! در این مواقع که تعداد حالت های بررسی یک شرط زیاد میشود از دستور شرطی switch استفاده میکنیم.

ساختار switch در سوئیفت

به نمونه ای از switch دقت کنید.

switch value {
case pattern1:
// first part of code...
case pattern2:
// second part of code...
default:
// default code...
}
  1. اگر مقدار value با pattern1 برابر باشد بخش اول کد اجرا میشود.
  2. اگر مقدار value با pattern2 برابر باشد بخش دوم کد اجرا میشود.
  3. و اگر مقدار value با هیچ کدام برابر نباشد کد های بخش default اجرا میشوند.

بررسی case های switch در سوئیفت

حالا یک مثال با متغیر را با هم بررسی کنیم، که در مورد case ها چند تا نکته بگیم.

let weather = "Rainy"

switch weather {
case "Sunny":
print("it's sunny.")
case "Cloudy":
print("it's cloudy.")
case "Rainy":
print("it's rainy.")
default:
print("have a good day!")
}

خروجی:

it's rainy.
نکته:
  • default تقریبا کار elseرا انجام میدهد، یعنی اگر هیچ کدام از حالت های case برقرار نباشند بخش مربوط به default اجرا میشود.
  • دقت کنید در مثال بالا بعد از وارد شدن به یکی از case ها، و اجرا کردن کدهای مربوط به آن از switch خارج میشود و بقیه case ها بررسی نمیشوند.

امکان اجرای چند case در سوئیفت وجود دارد؟

اگر نیاز دارید که بعد از اجرای یک case بقیه مورد ها هم بررسی شوند میتوانید از کلمه کلیدی fallthrough استفاده کنید.

let day = 3

switch day {
case 1:
print("saturday.")
case 2:
print("sunday")
case 3:
print("monday")
fallthrough
case 4:
print("tuesday")
case 5:
print("wednesday")
case 6:
print("thursday")
case 7:
print("friday")
default:
print("i have a lot of work to do!")
}

خروجی:

monday i have a lot of work to do!

همانطور که میبینید بعد از این که وارد case مربوط به 2 شد چون در آن کلمه fallthrough وجود داشت، بقیه کد را نیز بررسی کرد و default را هم اجرا کرد.


شرط بازه ای در Switch

این امکان وجود دارد که بتوانیم بجای گذاشتن یک متغیر در pattern از یک بازه یا range استفاده کنیم، به مثال زیر دقت کنید.

let number = 9

switch number {
case 0...10:
print("under 10.")

case 11...20:
print("between 10 and 20.")

case 21...30:
print("between 20 and 30.")

default:
print("invalid number!")
}

خروجی:

under 10.

این مقاله در حال بروز رسانی است و در آینده نزدیک مباحث جدید تری اضافه میشود...
میلاد خط شب
میلاد خط شب
معتقدم هر آدمی میتواند در یک زمینه ای مفید و تاثیر گذار باشد و اصولا آدم "غیر مفید" نداریم. فقط کافی است به موقع و صحیح راهنمایی شود.
پاسخ دهید


برخی از افرادی که این مقاله را پسندیدند 🥰

58