أساسيات البرمجة للمبتدئين بالعربية مع تمارين عملية

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

مفهوم الشروط المتداخلة الشروط المتداخلة ( Nested Conditions ) يُقصد بها وضع شرط بداخل شرط. أي وضع جملة شرط بداخل جملة شرط و هذا الأمر نفعله عادةً لجعل...
وقت الدراسة
10 دقيقة

المسار: أساسيات البرمجة الوحدة: العوامل والشروط

مدخل إلى الدرس: الشروط المتداخلة في البرمجة

مفهوم الشروط المتداخلة الشروط المتداخلة ( Nested Conditions ) يُقصد بها وضع شرط بداخل شرط. أي وضع جملة شرط بداخل جملة شرط و هذا الأمر نفعله عادةً لجعل...

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

مفهوم الشروط المتداخلة

الشروط المتداخلة ( Nested Conditions ) يُقصد بها وضع شرط بداخل شرط. أي وضع جملة شرط بداخل جملة شرط و هذا الأمر نفعله عادةً لجعل قراءة الكود أكثر سهولة في حال كنا بحاجة لوضع الكثير من الشروط حتى ننفذ أوامر محددة.

هذا الدرس سيكون عبارة عن أمثلة تتعلم من خلالها طرق مختلفة لوضع شروط منطقية و الحصول على نفس النتيجة.

طريقة وضع شرط بداخل شرط

في حال أردنا بناء برنامج يحسب كم يجب أن يكون مرتب من يتم قبوله في الوظيفة فهنا يمكننا وضع عدة شروط متداخلة على أساسها يتم تحديد المرتب كما في الصورة التالية.

الشروط المتداخلة - Nested Conditions

الشروط الموضوعة في الصورة نقرأها على الشكل التالي:

  • إن لم يكن عنده خبرة سنة واحدة على الأقل سيتم إعلامه بأنه لا يمكنه التقديم على الوظيفة.
  • إن كان عنده خبرة سنة واحدة على الأقل و لكنه غير متزوج، سيكون مرتبه 800$.
  • إن كان عنده خبرة سنة واحدة على الأقل و كان متزوجاً، سيكون مرتبه 1000$.

في المثال التالي سيطلب من المستخدم إدخال عدد سنوات خبرته و إن كان متزوجاً أم لا.
بعدها سيتم إعلامه كم سيكون مرتبه إذا تم قبوله في الوظيفة.

ملاحظة: إن لم يجب على سؤال ما إن كان متزوجاً أم لا بواسطة كلمة yes أو no سيتم إعلامه أن جوابه غير مقبول.

الحل الأول

var experience;
var is_married;

write("Enter years of experience: ");
experience = read();

write("Are you married (yes/no): ");
is_married = read();

if(experience >= 1)
{
    if (is_married == "yes")
    {
        write("Your salary will be 1000$ per month.");
    }
    else if (is_married == "no")
    {
        write("Your salary will be 800$ per month.");
    }
    else
    {
        write("Error: your answer can be 'yes' or 'no' only.");
    }
}
else
{
    write("Sorry.. The job requires at least one year of experience!");
}

النتيجة: ستكون كما يلي إذا تم إدخال نفس القيم التي تظهر بلون مختلف وقت التشغيل.

Enter years of experience: 3
Are you married (yes/no): no
Your salary will be 800$ per month.

تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.

تمرين تطبيقي: أعد كتابة المثال بنفسك، غيّر قيمة واحدة، وتوقع الناتج قبل التنفيذ.


هذه المرة سنجعل الجملة الشرطية الأولى ترى إذا كانت خبرة المستخدم أصغر من 1.
في هذه الحالة لاحظ أننا وضعنا جمل الشرط الداخلية بداخل الجملة else.

الحل الثاني

var experience;
var is_married;

write("Enter years of experience: ");
experience = read();

write("Are you married (yes/no): ");
is_married = read();

if(experience < 1)
{
    write("Sorry.. The job requires at least one year of experience!");
}
else
{
    if (is_married == "yes")
    {
        write("Your salary will be 1000$ per month.");
    }
    else if (is_married == "no")
    {
        write("Your salary will be 800$ per month.");
    }
    else
    {
        write("Error: your answer can be 'yes' or 'no' only.");
    }
}

النتيجة: ستكون كما يلي إذا تم إدخال نفس القيم التي تظهر بلون مختلف وقت التشغيل.

Enter years of experience: 3
Are you married (yes/no): no
Your salary will be 800$ per month.

تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.

تمرين تطبيقي: أعد كتابة المثال بنفسك، غيّر قيمة واحدة، وتوقع الناتج قبل التنفيذ.


هذه المرة لن نستخدم أسلوب الشروط المتداخلة بل سنعتمد على العامل &&.

الحل الثالث

var experience;
var is_married;

write("Enter years of experience: ");
experience = read();

write("Are you married (yes/no): ");
is_married = read();

if(is_married != "yes" && is_married != "no")
{
    write("Error: your answer can be 'yes' or 'no' only.");
}
else if(experience >= 1 && is_married == "yes")
{
    write("Your salary will be 1000$ per month.");
}
else if(experience >= 1 && is_married == "no")
{
    write("Your salary will be 800$ per month.");
}
else if(experience < 1)
{
    write("Sorry.. The job requires at least one year of experience!");
}
النتيجة: ستكون كما يلي إذا تم إدخال نفس القيم التي تظهر بلون مختلف وقت التشغيل.
Enter years of experience: 3
Are you married (yes/no): no
Your salary will be 800$ per month.

تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.

تمرين تطبيقي: أعد كتابة المثال بنفسك، غيّر قيمة واحدة، وتوقع الناتج قبل التنفيذ.

هل استخدام الشروط المتداخلة أمر إجباري؟

كلا طبعاً، فكما لاحظت في الأمثلة السابقة أننا استطعنا كتابة البرنامج الواحد بثلاث طرق مختلفة و حصلنا على النتيجة ذاتها.
و من هذا المنطلق نريدك أن تكون على قناعة تامة بأنك قادرة على كتابة الكود دائماً بطرق مختلفة.

إستخدام أسلوب الشروط المتداخلة أمر يريحك للغاية عند كتابة الكود و عند الحاجة للتعديل عليه مستقبلاً لهذا فإننا نستخدمه كثيراً في مشاريعنا البرمجية عندما نتعامل مع شروط تكون مبنية على بعضها.

في الختام، عليك دائماً أن تحاول فهم الكود الذي أمامك لا أن تحفظه، و لتفهمه جيداً عليك تحليل طريقة عمله سطراً سطراً كما فعلنا.

مراجعة وتمرين تثبيت المهارة

اختبار سريع: اشرح بعبارتك معنى «الشروط المتداخلة في البرمجة»، ثم بيّن أين ستستخدمه داخل برنامج صغير لحل مشكلة يومية مع مدخلات ونتائج يمكن التحقق منها، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.

تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.

الدرس التالي: التحقق من أنواع القيم في البرمجة. من الأفضل إنهاء التجربة الحالية قبل متابعة الدرس التالي.

دروس نصية

#1

تعلم أساسيات البرمجة

#2

دالة الطباعة في البرمجة

#3

المتغيرات في البرمجة

#4

العوامل في البرمجة

#5

حلقات التكرار في البرمجة

#6

المصفوفات و أنواعها في البرمجة

#7

تعريف دوال جديدة في البرمجة

#8

محرر الكود للمبتدئين في البرمجة

#9

دمج البيانات في أساسيات البرمجة

#10

أنواع البيانات في البرمجة

#11

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

#12

الحلقة for في البرمجة

#13

المصفوفات الأحادية في البرمجة

#14

الإستدعاء الذاتي في البرمجة

#15

محلل الكود للمبتدئين في البرمجة

#16

أحرف الهروب في البرمجة

#17

دالة الإدخال في البرمجة

#18

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

#19

الحلقة while في البرمجة

#20

المصفوفات الثنائية في البرمجة

#21

كتابة كود أقل في البرمجة

#22

التحقق من أنواع القيم في البرمجة

#23

الحلقة do while في البرمجة

#24

المصفوفات الثلاثية في البرمجة

#25

الخطوة التالية بعد تعلم أساسيات البرمجة

#26

الحلقات المتداخلة في البرمجة

#27

العمليات الحسابية المتسلسلة في البرمجة

#28

حساب قيمة العاملي للعدد في البرمجة

#29

حساب المضاعف للعدد في البرمجة

عرض الدروس كاملة تحقق من صفحة تعلم الدورة
درس نصي 3/29
أنت تشاهد
الشروط المتداخلة في البرمجة