الشروط (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. شروط لا تتحقق أبداً
نصائح مهمة
- ضع الشروط الأكثر تحديداً أولاً في سلسلة elsif
- استخدم unless بدلاً من
if !conditionلوضوح أفضل - تجنب التداخل العميق - حاول تسطيح الشروط باستخدام && و ||
- استخدم الأقواس لتوضيح الشروط المعقدة
- اختبر جميع الحالات - الصحيحة والخاطئة والحدية
تمرين: حاسبة التقديرات
حان وقت التطبيق! في محرر الشيفرة على اليسار:
المطلوب: اكتب برنامجاً يحدد تقدير الطالب بناءً على درجته:
- عرّف متغير
score = 78 - استخدم if-elsif-else لتحديد التقدير:
- 90 فأعلى: اطبع "ممتاز"
- 80-89: اطبع "جيد جداً"
- 70-79: اطبع "جيد"
- 60-69: اطبع "مقبول"
- أقل من 60: اطبع "راسب"
الناتج المتوقع:
تلميح: ابدأ بالشرط الأعلى (90 فأعلى) ثم تنازلياً. تذكر أن
elsifيُفحص فقط إذا فشلت الشروط السابقة!
تذكّر: الجمل الشرطية هي أساس اتخاذ القرارات في البرمجة. كل برنامج تفاعلي يستخدمها!