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

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

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

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

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
  • أي قيمة أخرى (سالبة): skipped، ولا تدخل في report

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

بالنسبة إلى الإدخال 5,15,30,70,-3,40,12، يكون الناتج:

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

جرّب بنفسك

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

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

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

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

تدرّب بنفسك: مترجم Ruby عبر الإنترنت