الدرس 3 من 10

الجمل الشرطية

هدف الدرس

if و unless والقيم الخاطئة

01

الشرح

if تنفّذ كتلتها إن صحّ شرطها، وelsif تعرض شرطًا آخر إن لم يصحّ ما قبله، وelse لما بقي، وend تُغلق السلسلة كلها. وRuby تفحص الفروع بالترتيب وتنفّذ أول فرع صحيح فقط، فابدأ بالحدّ الأعلى. وif نفسها تُرجع قيمة آخر سطر في الفرع الذي نُفّذ، فتُسند نتيجتها إلى متغيّر مباشرة.

وللشرط القصير أشكال أقصر: العامل الثلاثي cond ? a : b يختار بين قيمتين في سطر، والمُعدِّل يضع الشرط في آخر السطر: puts "مرحبًا" if logged_in. وunless عكس if: تنفّذ ما لم يصحّ الشرط، وتُقرأ أوضح من if !.

والفخّ لمن جاء من بايثون أو JavaScript: في Ruby قيمتان خاطئتان فقط، nil وfalse. أما 0 و"" والمصفوفة الفارغة فكلها صحيحة. فـ if stock تصحّ والمخزن صفر، وnickname || "ضيف" تُرجع النصّ الفارغ. اسأل صراحةً: stock.zero? وnickname.empty?.

02

المطلوب

احسب shipping بسلسلة if وelsif: 0 للطلب من 200 فأكثر، و15 من 100، وإلا 25. واجعل status بالعامل الثلاثي «متوفّر» إن بقي في المخزن شيء وإلا «نفد». وdisplay_name هو nickname، أو «ضيف» إن كان فارغًا. ثم اطبع «أعد الطلب من المورّد» بـ unless في آخر السطر، ما لم يبقَ في المخزن شيء.

معايير التصحيح

6 معايير
  1. shipping 15 لطلب بـ 180
  2. shipping بسلسلة if و elsif لا بقيمة مكتوبة
  3. status «نفد»: الصفر ليس خاطئًا في Ruby
  4. display_name «ضيف»: النصّ الفارغ ليس خاطئًا أيضًا
  5. طُبع تنبيه المورّد
  6. التنبيه بـ unless في آخر السطر
main.rb
المخرجاتRuby 3.4 · ruby.wasm

جارٍ تحميل Ruby… نحو 8MB مرّة واحدة، ثم يحفظها المتصفح.

–/6

يبدأ الفحص حين تجهز البيئة.

6 معايير في بطاقة «المطلوب».