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

النطاقات في Case / When

جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy — الدرس 8 من 56.

تتألق النطاقات (Ranges) داخل جملة case في لغة روبي. فبينما تحتاج العديد من اللغات إلى سلسلة من if/elsif مع معاملات المقارنة، تتيح لك روبي مطابقة قيمة مقابل النطاقات مباشرةً.

score = 78
grade = case score
        when 90..100 then "A"
        when 80..89  then "B"
        when 70..79  then "C"
        when 60..69  then "D"
        else              "F"
        end
puts grade  # C

خلف الكواليس، يستخدم when 70..79 عامل التشغيل === الخاص بالنطاق، وهو ما يعادل (70..79).include?(score).

تعتبر صيغة case أقصر، وأسهل في القراءة، وأسرع في الكتابة من سلسلة if/elsif الطويلة.

challenge icon

التحدي

سهل

اقرأ قائمة من الأعمار الصحيحة مفصولة بفاصلة. لكل عمر، قم بتصنيفه باستخدام جملة case مع النطاقات (ranges):

  • 0..12: Child
  • 13..19: Teen
  • 20..64: Adult
  • 65 أو أكثر: Senior
  • أي شيء آخر (سالب): يتم تخطيه، ولا يظهر في التقرير

اطبع سطر عد لكل فئة غير صفرية، بهذا الترتيب الثابت: Child، Teen، Adult، Senior. تخطَّ الفئات التي لا تحتوي على أشخاص. بعد عمليات العد، اطبع Skipped: <n> حيث n هو عدد الأعمار السالبة (غير الصالحة).

للمدخلات 5,15,30,70,-3,40,12، يكون المخرج:

Child: 2
Teen: 1
Adult: 2
Senior: 1
Skipped: 1

ورقة مرجعية

استخدم النطاقات في جمل case — تطابق روبي عبر === (ما يعادل include?):

score = 78
grade = case score
        when 90..100 then "A"
        when 80..89  then "B"
        when 70..79  then "C"
        when 60..69  then "D"
        else              "F"
        end
puts grade  # C

جرّب بنفسك

ages = gets.chomp.split(",").map(&:to_i)

# مهمة: تصنيف كل عمر باستخدام case + النطاقات، والعد لكل فئة، وطباعة التقرير
quiz iconاختبر نفسك

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

جميع دروس المنطق وتدفق العمليات