تعبير 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 لا تحتاج إلى ذلك.
التحدي
سهلأُعطيتَ المتغير التالي:
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)
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4العوامل - الجزء الأول
العوامل الحسابيةعامل باقي القسمةالإسناد المُعزَّزعوامل المقارنةمراجعة - الرياضيات البسيطة7أساسيات الإدخال والإخراج
دالة Printlnقوالب السلاسل النصيةإدخال ReadLineتحويل النوعمراجعة - السنوات حتى التقاعدمراجعة - صواب أم خطأ10الدوال
تعريف دالةالمعاملات والوسائطالقيم المُعادةالوسائط المُسمّاةالقيم الافتراضيةالدوال ذات التعبير الواحدمراجعة - دالة سيغمامراجعة - دالة التحقق2المتغيرات
val مقابل varاستنتاج النوعالأعدادالسلسلة النصيةالقيمة المنطقيةاصطلاحات التسميةمراجعة - تهيئة المتغيرات5المعاملات الجزء 2
المعاملات المنطقية الجزء 1المعاملات المنطقية الجزء 2المعاملات المنطقية الجزء 3المعامل الثلاثي مع تعبير Ifمراجعة - المنطق البسيط8حاسبة تقسيم الفاتورة
رسالة ترحيبيةالحصول على الإدخال3القابلية للقيمة الفارغة
ما هو الأمان من القيم الفارغةالأنواع القابلة للقيمة الفارغةعامل الاستدعاء الآمنعامل Elvisأساسيات تحدي الدوالتأكيد عدم كون القيمة فارغةمراجعة - الوصول الآمن9الحلقات
حلقة Forحلقة Whileحلقة Do-WhileBreakContinueالنطاقات في الحلقاتالحلقة المتداخلةمراجعة - المضروبمراجعة - الإدخال الديناميكيتدرّب بنفسك: Playground لـ Kotlin