Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تعبير When

جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 32 من 93.

عندما تكون لديك قيم محددة متعددة تريد التحقق منها، قد تصبح السلاسل الطويلة من عبارات else if صعبة القراءة. توفّر Kotlin تعبير when كبديل أكثر وضوحًا لمطابقة قيمة مع احتمالات متعددة.

fun main() {
    val day = 3
    
    val dayName = when (day) {
        1 -> "Monday"
        2 -> "Tuesday"
        3 -> "Wednesday"
        4 -> "Thursday"
        5 -> "Friday"
        else -> "Weekend"
    }
    
    println(dayName)  // يطبع: Wednesday
}

يأخذ التعبير when قيمةً ويقارنها بكل فرع. عند العثور على تطابق، تُعاد النتيجة المقابلة. يتعامل الفرع else مع أي قيمة لا تطابق الحالات المدرجة.

يمكنك أيضًا مطابقة قيم متعددة في فرع واحد من خلال فصلها بفواصل:

fun main() {
    val day = 6
    
    val type = when (day) {
        1, 2, 3, 4, 5 -> "Weekday"
        6, 7 -> "Weekend"
        else -> "Invalid"
    }
    
    println(type)  // يطبع: Weekend
}

يجب أن تكون عبارة when التي تنتج قيمة شاملة: إذ يجب أن يكون لكل مُدخل محتمل نتيجة. تحتاج هذه الأمثلة الصحيحة إلى else، لكن عبارة when المنطقية التي تحتوي على فرعي true وfalse لا تحتاج إلى ذلك.

challenge icon

التحدي

سهل

أُعطيتَ المتغير التالي:

val month = 4

استخدم تعبير when لتحديد الفصل بناءً على رقم الشهر، وخزّن النتيجة في متغير يُسمى season.

الشروط:

  • يجب أن تُرجع الأشهر 12 و1 و2 القيمة "Winter"
  • يجب أن تُرجع الأشهر 3 و4 و5 القيمة "Spring"
  • يجب أن تُرجع الأشهر 6 و7 و8 القيمة "Summer"
  • يجب أن تُرجع الأشهر 9 و10 و11 القيمة "Fall"
  • يجب أن تُرجع أي قيمة أخرى القيمة "Invalid month"

استخدم قيمًا مفصولة بفواصل في فروع when لتجميع الأشهر التي تنتمي إلى الفصل نفسه.

اطبع قيمة season.

جرّب بنفسك

fun main() {
    val month = 4
    
    // TODO: اكتب الكود الخاص بك أدناه
    // استخدم تعبير when لتحديد الموسم بناءً على الشهر
    // خزّن النتيجة في متغير يسمى 'season'
    
    
    // اطبع النتيجة
    println(season)
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Kotlin