دستور شرطی when
با سلام خدمت همهی مخاطبین کافی کد، امیدوارم که حالتون خوب باشه و روزگار به کامتون باشه.
در قسمت قبلی دستورات شرطی کاتلین را بررسی کردیم.
و با دستورات شرط if,else , if else و….. مثال هایی از آنها آشنا شدیم.و اما در این قسمت قرار هستش که یک ساختار دیگه از دستورات شرطی در کاتلین را با هم دیگه بررسی کنیم.
در این بخش ما به بررسی دستور شرطی when در کاتلین میپردازیم و با هم دیگه مثالهایی از این ساختار را بررسی میکنیم.همچنین ویژگی های دستور شرطی when را بررسی میکنیم.
و همچنین مزیتهای دستور شرطی when را نسبت به if را بررسی میکنیم…..
همراه ما باشید.
خب ابتدا با یک سوال بحث را شروع میکنیم: تصور کنید در یک موقعیتی قرار دارید که حداقل 10 شرط را باید بررسی کنید آیا باید از if else های پی در پی استفاده کنید؟
در جواب باید بگم که خب این کار باعث میشه کده ما طولانیتر و کثیفتر بشه،و همانطور که ما در مورد کاتلین گفتیم ، توضیح دادیم که از ویژگیهای این زبان خلاصه نویسی و تمیز نوشتن کد است.
پس اینجاست که دستور when ب کمک ما میآید و می توانیم از آن استفاده کنیم.
دستور شرطی when بسیار شبیه دستور switch در زبانهای java, c میباشد.
و مانند دستور switch یک آرگومان را دریافت میکند در ورودی،و بر اساس آن آرگومان بقیهی دستورات و شرط ها را بررسی میکند.
مثالی از دستور شرطی when:
fun main(args: Array<String>) { val day = 2 val result = when (day) { 1 -> "Monday" 2 -> "Tuesday" 3 -> "Wednesday" 4 -> "Thursday" 5 -> "Friday" 6 -> "Saturday" 7 -> "Sunday" else -> "Invalid day." } println(result) }
در قطعه کد بالا ما متغیری داریم با نام day که در آن مقدار 2 ریخته شده،سپس متغیری دیگری داریم تحت عنوان result که نتیجهی when را در آن میریزیم.
همانطور که گفتیم دستور شرطی when یک آرگومان یا ورودی دریافت میکند که همان شرطی است که ما میخواهیم بررسیش کنیم.ما متغیر day را به آن دادهایم.
و سپس در بدنهی when روزهای هفته را به ترتیب نوشتیم که باید به شکل عدد و یک فلش جلوی آن بنویسیم این سینتکس when میباشد.
حالا ما در متغیر day مقدار 2 را داریم،when میاید بررسی میکند آیا چنین شرطی در بدنه وجود دارد یا خیر.
بله دستور 2 مقدار Tuesday قرار دارد و برای ما نمایش میدهد.
همچنین اگر شرط ما برقرار نباشد دستور else که مقدار Invalid day را اجرا میکند.
مثال:
fun main(args: Array<String>) { val day = 2 when (day) { 1 -> println("Monday") 2 -> println("Tuesday") 3 -> println("Wednesday") 4 -> println("Thursday") 5 -> println("Friday") 6 -> println("Saturday") 7 -> println("Sunday") else -> println("Invalid day.") } }
این قطعه کد هم شبیه مثال قبلی میباشد فقط با این تفاوت که هر یک از دستورات را مستقیم print کردیم و تبدیل به عبارت کردیم که هر دو روش مناسب هستن.
مثال ترکیب شرایط در یک شرط:
fun main(args: Array<String>) { val day = 2 when (day) { 1, 2, 3, 4, 5 -> println("Weekday") else -> println("Weekend") } }
در مثال بالا ما میخواهیم تعطیلات هفته را بررسی کینم مثلا پنج روز تعطیلی در هفته داریم همه آنها را با دستور when بررسی میکنیم و ترکیب میکنیم.
و کدمان کوتاه تر میشود و از نوشتن کدهای تکراری جلوگیری میکنیم.
مثال Range در یک شرط:
fun main(args: Array<String>) { val day = 2 when (day) { in 1..5 -> println("Weekday") else -> println("Weekend") } }
در قطعه کد بالا ما میخاهیم بین یک رنج عدد را بررسی کنیم مثلا از 1 تا پنج را میخواهیم بررسی کنیم که روزهای تعطیل هستند.
با استفاده از کلمه کلیدی in و .. میتوانیم رنج را مشخص کنیم همانطور که در قطعه کد بالا مشاهده میکنید،ما این کار را انجام دادهایم. و باز هم این کد خلاصه ترو کوتاه تر از قطعه کدهای قبلی میباشد.
همچنین ما میتوانیم از عبارات مقایسهای هم استفاده کنیم در دستور when همچنین اپراتورها استفاده کنیم.
مثلا میتوانیم بررسی کنیم زمانی که (x + y) را بررسی کنیم و دستوراتی را اجرا کنیم.
fun main(args: Array<String>) { val x = 20 val y = 10 val z = 10 when (x) { (y+z) -> print("y + z = x = $x") else -> print("Condition is not satisfied") } }
امیدورام از این بخش هم نهایت استفاده رو کرده باشید.
همراه ما باشید.
کامنتها و اپراتورها