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

when متعددة القيم

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

يمكن لـ when واحدة أن تطابق أي قيمة من بين عدة قيم تفصل بينها فاصلة. يتم تنفيذ الفرع إذا كانت القيمة تطابق أي واحدة منها.

day = "Sat"
kind = case day
       when "Sat", "Sun"                          then "weekend"
       when "Mon", "Tue", "Wed", "Thu", "Fri"  then "weekday"
       end
puts kind   # نهاية الأسبوع

هذا أنظف بكثير من ربط || في سلسلة if/elsif.

يمكنك أيضًا الجمع بين أنواع القيم في when واحدة: السلاسل النصية، النطاقات، أنماط التعابير النمطية (regex patterns)، كلها مجرد أشياء تستجيب لـ ===:

def describe(x)
  case x
  when 0, nil       then "empty"
  when 1..9         then "small"
  when 10..99       then "medium"
  when /^huge:/i    then "flagged huge"
  end
end

اختر الأشكال التي تجعل كل فرع سهل القراءة بنظرة سريعة.

challenge icon

التحدي

سهل

اقرأ حرفًا واحدًا (سطر واحد من الإدخال). استخدم case مع فروع when متعددة القيم لطباعة أحد ما يلي:

  • vowel: الإدخال هو أحد a, e, i, o, u (غير حساس لحالة الأحرف، قم بتحويل الإدخال إلى أحرف صغيرة أولاً)
  • digit: الإدخال هو أحد 0..9 (استخدم نطاقًا)
  • punctuation: الإدخال هو أحد ., ,, !, ?
  • other: أي شيء آخر

عامل الإدخال كسلسلة نصية مكونة من حرف واحد. اختبر فرع digit باستخدام نطاق مثل "0".."9".

بالنسبة للإدخال E تكون النتيجة vowel؛ ولـ 7 تكون digit؛ ولـ ! تكون punctuation.

جرّب بنفسك

ch = gets.chomp

# TODO: case ch.downcase ... مع فروع when متعددة القيم
quiz iconاختبر نفسك

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

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

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