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

When مع النطاقات

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

أحيانًا تحتاج إلى التحقق مما إذا كانت قيمة ما تقع ضمن نطاق بدلًا من مطابقة قيم محددة. يدعم تعبير when ذلك باستخدام الكلمة الأساسية in مع النطاقات.

fun main() {
    val score = 85
    
    val grade = when (score) {
        in 90..100 -> "A"
        in 80..89 -> "B"
        in 70..79 -> "C"
        in 60..69 -> "D"
        else -> "F"
    }
    
    println(grade)  // يطبع: B
}

تتحقق الكلمة المفتاحية in مما إذا كانت القيمة موجودة ضمن النطاق المحدد. هنا، تقع 85 ضمن 80..89، لذا تكون الدرجة "B". وهذا أكثر نظافة بكثير من كتابة score >= 80 && score <= 89 لكل شرط.

يمكنك أيضًا دمج النطاقات مع قيم محددة في تعبير when نفسه:

fun main() {
    val age = 17
    
    val category = when (age) {
        0 -> "Newborn"
        in 1..12 -> "Child"
        in 13..19 -> "Teenager"
        else -> "Adult"
    }
    
    println(category)  // يطبع: Teenager
}

تجعل النطاقات شفرتك أكثر قابلية للقراءة عند التعامل مع الشروط الرقمية المتواصلة، وهو أمر شائع في أنظمة التقييم، وفئات الأعمار، والسيناريوهات المماثلة.

challenge icon

التحدي

سهل

اكتب دالة getTicketPrice تأخذ age وتُرجع سعر التذكرة بناءً على الفئة العمرية للشخص.

استخدم تعبير when مع نطاقات لتحديد سعر التذكرة المناسب.

الشروط:

  • العمر من 0 إلى 3: أرجِع 0 (مجانًا)
  • العمر من 4 إلى 12: أرجِع 10 (سعر الطفل)
  • العمر من 13 إلى 17: أرجِع 15 (سعر المراهق)
  • العمر من 18 إلى 64: أرجِع 25 (سعر البالغ)
  • العمر 65 فأكثر: أرجِع 12 (سعر كبار السن)

المعاملات:

  • age (Int): عمر الشخص

القيمة المُرجعة: سعر التذكرة كعدد صحيح (Int)

جرّب بنفسك

fun getTicketPrice(age: Int): Int {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

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

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

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