الشروط (if/elsif/else/unless)

تعديل
نسخ الدرس
تحميل الدرس

الشروط (if/elsif/else/unless)

حتى الآن، كانت برامجنا تُنفذ سطراً بعد سطر من الأعلى للأسفل. لكن البرامج الحقيقية تحتاج لاتخاذ قرارات! هنا يأتي دور الجمل الشرطية.

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

الجمل الشرطية تسمح للبرنامج بتنفيذ شيفرة مختلفة بناءً على شرط معين. مثل الحياة اليومية:

  • إذا كان الجو ممطراً، خذ المظلة
  • إذا كان لديك مال كافٍ، اشترِ الكتاب، وإلا اقترض من صديق

جملة if البسيطة

أبسط صورة للشرط هي if:

الناتج:

شرح البنية:

  • if تبدأ الجملة الشرطية
  • الشرط يُقيّم إلى true أو false
  • الشيفرة بين if و end تُنفَّذ فقط إذا كان الشرط true
  • end تُنهي الجملة الشرطية

مثال: التحقق من كلمة المرور

الناتج:

مثال: رقم موجب

الناتج:

جملة if-else

ماذا لو أردنا تنفيذ شيفرة بديلة عندما يكون الشرط خاطئاً؟ نستخدم else:

الناتج:

شرح البنية:

مثال: زوجي أم فردي

الناتج:

مثال: رصيد كافٍ

الناتج:

جملة if-elsif-else

عندما يكون لدينا أكثر من احتمالين، نستخدم elsif:

الناتج:

شرح البنية:

ملاحظة: تُنفَّذ فقط الشيفرة في القسم الأول الذي يكون شرطه صحيحاً، ثم يخرج من الجملة.

مثال: فئات العمر

الناتج:

مثال: حالة الطقس

الناتج:

جملة unless (عكس if)

unless تعني "إذا لم يكن" - أي عكس if:

الناتج:

المقارنة بين if و unless

كلاهما يعطي نفس النتيجة، لكن unless أوضح عندما نريد "إذا لم يكن".

unless-else

الناتج:

تحذير: لا تستخدم unless مع elsif - استخدم if بدلاً منها لأنها تصبح مربكة.

الشروط في سطر واحد (Inline Conditionals)

للشروط البسيطة، يمكنك كتابتها في سطر واحد:

if في سطر واحد

الناتج:

unless في سطر واحد

الناتج:

مقارنة الصيغتين

نصيحة: استخدم الصيغة المختصرة فقط للجمل البسيطة القصيرة.

الشروط المتداخلة (Nested Conditionals)

يمكنك وضع شرط داخل شرط آخر:

الناتج:

تبسيط الشروط المتداخلة

غالباً يمكن تبسيط الشروط المتداخلة باستخدام &&:

الشروط مع العمليات المنطقية

يمكنك دمج عدة شروط باستخدام && و ||:

الناتج:

مثال: نظام خصومات

الناتج:

جدول ملخص

الجملةالاستخداممثال
ifتنفيذ شيفرة إذا كان الشرط صحيحاًif x > 0
elseتنفيذ شيفرة بديل إذا كان الشرط خاطئاًelse
elsifفحص شرط إضافيelsif x == 0
unlessتنفيذ شيفرة إذا كان الشرط خاطئاًunless error
if مختصرشرط في سطر واحدputs "نعم" if ok
unless مختصرشرط عكسي في سطر واحدputs "لا" unless ok

أخطاء شائعة

1. نسيان end

2. استخدام = بدلاً من ==

3. شروط لا تتحقق أبداً

نصائح مهمة

  1. ضع الشروط الأكثر تحديداً أولاً في سلسلة elsif
  2. استخدم unless بدلاً من if !condition لوضوح أفضل
  3. تجنب التداخل العميق - حاول تسطيح الشروط باستخدام && و ||
  4. استخدم الأقواس لتوضيح الشروط المعقدة
  5. اختبر جميع الحالات - الصحيحة والخاطئة والحدية

تمرين: حاسبة التقديرات

حان وقت التطبيق! في محرر الشيفرة على اليسار:

المطلوب: اكتب برنامجاً يحدد تقدير الطالب بناءً على درجته:

  1. عرّف متغير score = 78
  2. استخدم if-elsif-else لتحديد التقدير:
    • 90 فأعلى: اطبع "ممتاز"
    • 80-89: اطبع "جيد جداً"
    • 70-79: اطبع "جيد"
    • 60-69: اطبع "مقبول"
    • أقل من 60: اطبع "راسب"

الناتج المتوقع:

تلميح: ابدأ بالشرط الأعلى (90 فأعلى) ثم تنازلياً. تذكر أن elsif يُفحص فقط إذا فشلت الشروط السابقة!


تذكّر: الجمل الشرطية هي أساس اتخاذ القرارات في البرمجة. كل برنامج تفاعلي يستخدمها!