دستور when در کاتلین

نحوی کار با دستور when در کاتلین | آموزش مقدماتی کاتلین | درس چهار

when در کاتلین چیست‌وچگونه استفاده می‌شود؟

شاید قبلا با ساختار های کنترلی اعم از if ، else if و حلقه ها مانند  for  ، while و … آشنا شده باشید . دستور when در کاتلین نیز یک ساختار کنترلی است و یک تفاوت کلی که با سایر ساختار های کنترلی دارد ، آن‌هم این است که به شما انتخاب های بیشتری می‌دهد  در واقع نوعی حلقه if تودرتو می‌باشد  با این تفاوت که در دستور when متغیر فقط مقادیر ثابتی از اعداد، رشته‌ها و یا کاراکترها را قبول می‌کند. مقادیر ثابت مقادیری هستند که قابل تغیر نیستند.

اگر قبلا آموزش جاوا را دیده باشید باید بدانید که دستور when در کاتلین همان دستور switch در زبان برنامه نویسی جاوا است و همان کار ها را انجام می‌دهد. البته when یکسری قابلیت های اضافه تری از دستور switch  دارد که در ادامه چند مورد از آنها را مقایسه می‌کنیم.

مطالب مرتبط : آموزش استفاده از عملگر های ریاضی در کاتلین | آموزش مقدماتی کاتلین |درس دوم

تفاوت‌های اصلی بین دستور when و switch عبارتند از:

از جمله تفاوت های مهم دستور when  با switch این است که دستور when می‌تواند مقادیری غیر از مقادیر ثابت را نیز قبول کند. به عنوان مثال، دستور when می‌تواند یک متغیر، یک تابع یا یک شیء را نیز قبول کند. دستور when می‌تواند چندین مقدار را در یک case قبول کند. مثلا ما می‌توانیم  به کمک این دستور یکسری مقدار ، مثلا 1، 2 و 3 را در یک case قبول کنیم . در ادامه چندین مورد از استفاده از آن را برای شما می‌آوریم.

دستور when در کاتلین

دستور when در کاتلین

  • در این نمونه از استفاده های دستور when ما یک مقدار ثابت پاس می‌دهیم و اگربا مقداری از Case ها برابر باشد پیام مخصوص به آن را برای ما برمی‌گرداند.
 val dayOfWeek = "شنبه"

        when (dayOfWeek) {
            "شنبه" -> println("امروز شنبه است !")
            "یکشنبه" -> println("امروز یکشنبه است !")
            "دوشنبه" -> println("امروز دوشنبه است !")
            "سه شنبه" -> println("امروز سه شنبه است !")
            "چهارشنبه" -> println("امروز چهارشنبه است !")
            "پنج شنبه" -> println("امروز پنج شنبه است !")
            "جمعه" -> println("امروز جمعه است !")
        }
  • مورد دیگری که در آن از دستور when استفاده می‌کنند برای برسی یک مقدار در یک بازه است . مثلا یک عدد 21 می‌دهیم تا چک کند ببیند این عدد در بازه 20 تا 30 یا 30 تا 40 و ….. است .
     val number = 21

        when (number) {
            in

            20..30 -> println("این عدد بین بازه 20 تا 30 می باشد ")
            in

            31..40 -> println("این عدد بین بازه 30 تا 40 می باشد .")
            in

            41..50 -> println("این عدد بین بازه 40 تا 50 است.")
        }
  • در زمان هایی که لازم است یک مقدار را با یک شی بررسی کنیم .
  val color = Color.BLACK

        when (color) {
            Color.RED -> println("این رنگ قرمز است ")
            Color.WHITE -> println("این رنگ سفید است")
            Color.YELLOW -> println("این رنگ زرد است")
        }
  • مواقعی لازم است تا یک تابع را برحسب یک مقدار اجرا کنیم .
  val number = 11.5

        when (number) {
            is Int -> println("این مقدار یک عدد صحیح است .")
            is Float -> println("این مقدار یک عدد اعشاری است .")
            is String -> println("این مقدار یک رشته است .")
        }
  • زمان های هم لازم است یک مقداری را برگردانیم. در همان مثال بالا اگر مقدار متغیر برابر یکی از شرط ها بود مقداری برگردانده می‌شود و در یک متغیر دیگر ذخیره می‌شود .
val number = 11.5

      val result=when (number) {
            is Int -> "این مقدار یک عدد صحیح است ."
            is Float -> "این مقدار یک عدد اعشاری است ."
            is String -> "این مقدار یک رشته است ."
        }
        Toast.makeText(this,"Result : "+result,Toast.LENGTH_LONG).show()

مطالب مرتبط : پیاده سازی متغیر ها در کاتلین | آموزش مقدماتی کاتلین | درس اول

خلاصه مطالب

دستور when در کاتلین از سری دستورات شرطی مانند if ها تودرتو می‌باشد و عملکردی مانند switch در زبان برنامه نویسی جاوا را دارد اما خیلی کاملا و انعطاف پذیر تر از آن است .

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]
تصویر فرشید حبیبی

فرشید حبیبی

من فرشید حبیبی، توسعه‌دهنده نرم‌افزار با تمرکز بر برنامه‌نویسی اندروید هستم. در کنار فعالیت حرفه‌ای خود، وب‌سایت آموزشی «کدایت» را مدیریت می‌کنم و در آن به تولید محتوای آموزشی در حوزه برنامه‌نویسی اندروید می‌پردازم. هدف من، اشتراک دانش و کمک به برنامه‌نویسان برای یادگیری و پیشرفت در مسیر حرفه‌ای‌شان است.

مقالات آموزشگاه کدایت

جدیدترین مقالات و آموزش‌های تکمیلی برنامه‌نویسی را در وبلاگ کدایت بخوانید؛ مرجعی برای یادگیری مباحث پیشرفته کاتلین، توسعه اندروید، وب و فناوری‌های نوین.​

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزشگاه کدایت

پلتفرم یادگیری مهارت‌های مهندسی نرم‌افزار

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

اطلاعات تماس

تمامی حقوق این وب‌سایت متعلق به مجموعه کدایت است.

طراحی سایت : ایپک