Switch-Default

همانطور که در قبل گفته شد، برای حلقه‌های تکرار For-Loop معادل دستورات While و Do-While وجود دارد،همینطور برای دستور شرطی if معادل دستوری دیگری وجود دارد، به نام Switch ،برای آشنایی بیشتر با این دستور، در ادامه همراه باشید.

هر دستور switch، میتواند یک شرط را برای حالاتی مختلف بررسی کند، و میتواند نوشتن دستورات تو در تو‌ی if-else را تسهیل کند.ساختار کلی دستور switch به شکل زیر میباشد:

switch-statement

این دستور برای زمانی کاربرد دارد که بخواهید یک شرط منطقی یا یک رویداد را بررسی و نسبت به  هر کدام از حالات پیش آمده، برای آن دستور مناسبی اجرا کنید. همانطور که متوجه شدید،با استفاده از کلیدواژه‌ی switch این دستور را شروع میکنیم،سپس رویداد مورد بررسی را (در قسمت some value to consider) قرار داده و در ادامه با استفاده از کلیدواژه‌ی case میتوانیم مقدار شرط را وارد کرده و بعد از علامت دو نقطه رویداد مناسب با آن شرط را بنویسید،و برای ادامه باید همین کار را تکرار کنید،اما توجه داشته باشید که اگر هیچکدام از حالات بررسی شده برقرار نباشد، دستورات بعد از default اجرا خواهد شد،در اصل بخش default معادل آخرین else در دستورات تو در تو‌ی if-else است.

نکته: وجود بخش default ضروری است.

مثال زیر را مشاهده کنید:

٭ تمامی کدها و مثال ها را می توانید در بخش playground تست کنید.

let myBike :String = "BMW"

switch myBike {

    case "Honda","Kawasaki","Suzuki" :

        print("this is Japanese Bike")

    case "BMW" :

        print("this is Germany Bike")

    default:

        print("Unknown")
}

در مثال بالا ابتدا در یک ثابت مقدار رشته‌ای BMW را وارد کرده ایم،سپس با استفاده از دستور switch بررسی میکنیم که بر اساس نام موتور, سازنده‌ی آن چه کشوری میباشد،پس بررسی میکنیم که اگر نام موتور که در ثابت myBike تعریف کردیم برابر با هوندا،کاوازاکی یا سوزوکی باشد،در خروجی مقدار زیر چاپ شود:

this is Japanese Bike

در ادامه بررسی میکنیم که اگر مقدار ثابت myBike برابر با BMW است خروجی زیر چاپ شود:

this is Germany Bike

و در صورت برقرار نبودن بررسی های پیشین,دستورات بعد از default اجرا میشود، پسخروجی زیر چاپ میشود:

Unknown

نکته: توجه داشته باشید در زمانی که میخواهید چندین حالت را در یک case بررسی کنید،باید بین هرکدام از بخشهای مورد بررسی، از علامت کاما (،) استفاده کنید.

مثال زیر را مشاهده کنید:

٭ تمامی کدها و مثال ها را می توانید در بخش playground تست کنید.

let count = 3_000_000_000_000
let countedThings = "stars in the Milky Way"
var naturalCount: String

switch count {

case 0:

    naturalCount = "no"

case 1...3:

    naturalCount = "a few"

case 4...9:

    naturalCount = "several"

case 10...99:

    naturalCount = "tens of"

case 100...999:

    naturalCount = "hundreds of"

case 1000...999_999:

    naturalCount = "thousands of"

default:

    naturalCount = "millions and millions of"

}

print("There are \(naturalCount) \(countedThings).")

در مثال بالا، سعی میشود به صورت لفظی تعداد ستارگان راه شیری را بررسی کنیم،با استفاده از رنج اعداد این کار صورت میپذیرد و در نهایت چون آخرین شرط که بررسی رنج اعداد ۱۰۰۰ تا ۹۹۹،۹۹۹ است، نیز برقرار نیست، پس دستور بعد از default برقرار شده و در نهایت خروجی زیر را در کامپایلر مشاهده خواهید کرد.

Switch

مثالهای بالا را در محیط playground نوشته و تمرین کنید.

 

یادآوری:دوستان عزیزی که ابتدا پست های جدید رو مطالعه میکنند،توجه کنید که برای دیدن پست های قبلی و ابتدای این دوره آموزشی، باید به پایینی ترین پست مراجعه کنید و به صفحات قبل برگردید،چرا که ترتیب کلاسها بسیار حائز اهمیت است .


< جلسه‌ی بعد

> جلسه‌ی قبل