گاهی وقت‌ها نیاز داریم که مقدار یک متغیر را بررسی کنیم و بر اساس آن تصمیم بگیریم که چه کدی اجرا شود. در این مواقع، به‌جای نوشتن چندین if..else پشت‌سر‌هم، می‌توانیم از when استفاده کنیم که خواناتر و مرتب‌تر است. 😊


🎯 کاربرد when

با استفاده از when می‌توانیم بین چندین گزینه یکی را انتخاب کنیم و یک بخش از کد را اجرا کنیم. این کار باعث می‌شود کد ساده‌تر و کوتاه‌تر شود.

✍️ مثال: تبدیل عدد روز به نام روز هفته

فرض کنید یک عدد داریم که نشان‌دهنده‌ی روز هفته است (مثلاً 1 یعنی دوشنبه، 2 یعنی سه‌شنبه و …). می‌خواهیم نام روز را بر اساس این عدد مشخص کنیم:

val day = 4

val result = when (day) {
    1 -> "Monday"
    2 -> "Tuesday"
    3 -> "Wednesday"
    4 -> "Thursday"
    5 -> "Friday"
    6 -> "Saturday"
    7 -> "Sunday"
    else -> "Invalid day."
}

println(result)

خروجی:

Thursday

📌 چرا؟ چون مقدار day برابر 4 است، پس شرط مربوط به مقدار 4 -> "Thursday" اجرا می‌شود.


🛠 چگونه when کار می‌کند؟

  1. مقدار متغیر (در اینجا day) یک‌بار بررسی می‌شود.
  2. مقدار آن با هر گزینه‌ای که در when داریم مقایسه می‌شود.
  3. اگر مقدار متغیر با یکی از گزینه‌ها مطابقت داشته باشد، کد مربوط به آن اجرا می‌شود.
  4. اگر هیچ‌کدام از شرایط برقرار نباشد، دستورات داخل else اجرا می‌شود.

🔄 مقایسه when با switch در جاوا

اگر جاوا کار کرده باشید، احتمالاً با switch آشنا هستید. when در Kotlin معادل پیشرفته و انعطاف‌پذیر‌تر switch در جاوا است و خوانایی بیشتری دارد. 😎


💡 تمرین برای شما

1️⃣ برنامه‌ای بنویسید که عددی از 1 تا 12 را دریافت کند و نام ماه مربوط به آن را چاپ کند.
2️⃣ اگر عدد خارج از این محدوده بود، پیام "عدد نامعتبر است" را نمایش دهد.