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