تعلم البرمجة للمبتدئين جمل الشرط

مفهوم جمل الشرط

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


ترتيب جمل الشرط في حال كنت ستستخدمها كلها هو التالي.

if ( هنا تضع شرط )
{
    هنا تضع الأوامر التي تريد
    تنفيذها إذا تحقق الشرط
}
else if ( هنا تضع شرط آخر )
{
    هنا تضع الأوامر التي تريد
    تنفيذها إذا تحقق الشرط
}
else
{
    هنا تضع الأوامر التي تريد تنفيذها
    في حال لم يتحقق أي شرط سابق
}

ملاحظة

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

جملة الشرط if

if تعني إذا تحقق الشرط.
و هي تستخدم لتنفيذ كود معين إذا تحقق شرط معين.


في المثال التالي قمنا بوضع شرط مفاده أنه إذا كانت قيمة المتغير s أكبر من 5 سيتم طباعة جملة "S is bigger than 5".

هنا عندما يصل محرر الكود إلى جملة الشرط سيسأل نفسه: هل قيمة s أكبر من 5؟
بما أنه سيجد أن الشرط تحقق ( أي جوابه true ) سيتم تنفيذ أمر الطباعة الموضوع فيه.

المثال الأول

var s = 20;
 
if(s > 5)
{
    write("S is bigger than 5.");
}
		

سنحصل على النتيجة التالية عند التشغيل.

S is bigger than 5.

جرب الكود



هنا قمنا بإعادة المثال السابق و لكننا هذه المرة جعلنا قيمة المتغير s تساوي 0.

هنا عند يصل محرر الكود إلى جملة الشرط سيسأل نفسه: هل قيمة s أكبر من 5؟
بما أنه سيجد أن الشرط لم يتحقق ( أي جوابه false ) لن يتم تنفيذ أمر الطباعة الموضوع فيه.

المثال الثاني

var s = 0;
 
if(s > 5)
{
    write("s is bigger than 5.");
}
		

سنحصل على النتيجة التالية عند التشغيل.

جرب الكود


نستنتج

  • إذا تحقق الشرط فهذا يعني أن جواب الشرط هو true.
  • إذا لم يتحقق الشرط فهذا يعني أن جواب الشرط هو false.
  • الكود الموضوع بداخل جملة الشرط يتم تنفيذه في حال تحقق الشرط فقط.

جملة الشرط else

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

إذاً الكود الذي يوضع في الجملة else يتنفذ فقط في حال لم يتحقق الشرط الموجود في جملة if أو الجمل else if الموجودين قبلها.


في المثال التالي وضعنا شرطين كالتالي:

  • الجملة if وضعناها لطباعة عبارة "This is my name" في حال كانت قيمة المتغير name تساوي "Mhamad".
  • الجملة else وضعناها لطباعة عبارة "Not my name!" في حال كانت قيمة المتغير name لا تساوي "Mhamad".

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

المثال الأول

var name = "Mhamad";
 
if(name == "Mhamad")
{
    write("This is my name.");
}
else
{
    write("Not my name!");
}
		

سنحصل على النتيجة التالية عند التشغيل.

This is my name.

جرب الكود



الآن سنقوم بإعادة المثال السابق و لكننا هذه المرة سنجعل قيمة المتغير name تساوي "Rami".

هنا عندما يصل محرر الكود إلى جملة الشرط if سيسأل نفسه: هل قيمة name تساوي "Mhamad"؟
بما أنه سيجد أن الشرط لم يتحقق ( أي جوابه false ) سينتقل إلى الجملة else و ينفّذ أمر الطباعة الموضوع فيها.

المثال الثاني

var name = "Rami";
 
if(name == "Mhamad")
{
    write("This is my name.");
}
else
{
    write("Not my name!");
}
		

سنحصل على النتيجة التالية عند التشغيل.

Not my name!

جرب الكود


مشكلة قد تقع فيها عند مقارنة القيم

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


تذكر

إذا كنت تريد مقارنة قيمتين مع بعض لمعرفة ما إن كانتا متساويتين أم لا إستخدم == و ليس =.

جملة الشرط else if

جملة else if تستخدم إذا كنت تريد وضع أكثر من شرط حيث يكون لديك أكثر من إحتمال.
جملة أو جمل الشرط else if يوضعون في الوسط أي بين الجملتين if و else.


معلومة تقنية

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


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

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

ملاحظة: إن لم يكن رقم الشهر بين 1 و 12 فهذا يعني أن الرقم لا يمكن أن يشير لشهر محدد.

المثال الأول

write("Enter month number: ");
var month = read();
 
if(month == 1)
{
    write("January");
}
else if(month == 2)
{
    write("February");
}
else if(month == 3)
{
    write("March");
}
else if(month == 4)
{
    write("April");
}
else if(month == 5)
{
    write("May");
}
else if(month == 6)
{
    write("June");
}
else if(month == 7)
{
    write("Jul");
}
else if(month == 8)
{
    write("August");
}
else if(month == 9)
{
    write("September");
}
else if(month == 10)
{
    write("October");
}
else if(month == 11)
{
    write("November");
}
else if(month == 12)
{
    write("December");
}
else
{
    write("Cannot be a month!");
}
		

سنحصل على النتيجة التالية عند التشغيل مع الإشارة إلى أننا قمنا بتلوين القيمة التي أدخلناها عند التشغيل بلون مختلف.

Enter month number: 3
March

جرب الكود


الصورة التالية توضّح كيف قام محرر الكود بالمرور على الشروط, و من ثم كيف توقف حين وصل إلى الشرط الثالث و نفّذ الكود الموضوع فيه, ثم كيف تجاوز جميع الشروط الموضوعة بعده.


إنتبه

لو وضعنا if بدل كل else if سيؤدّي ذلك إلى أخطاء منطقية في الكود بمعنى أنه سيعمل و لكن النتيجة ستكون خاطئة.

المشكلة في هذه الحالة ستحدث لأن محرر الكود سيقوم باختبار جميع الشرط الموضوعة و حين يصل لآخر جملة if سيرى إن كانت قيمة المتغير month تساوي 12 أم لا و حين يجدها لا تساوي 12 سيقوم بتنفيذ الجملة else و بالتالي ستظهر لك نتيجة خاطئة.


هنا قمنا بإعادة المثال السابق و لكننا وضعنا if بدل كل else if حتى تلاحظ المشكلة المنطقية التي سيسببها ذلك.

المثال الثاني

write("Enter month number: ");
var month = read();
 
if(month == 1)
{
    write("January");
}
if(month == 2)
{
    write("February");
}
if(month == 3)
{
    write("March");
}
if(month == 4)
{
    write("April");
}
if(month == 5)
{
    write("May");
}
if(month == 6)
{
    write("June");
}
if(month == 7)
{
    write("Jul");
}
if(month == 8)
{
    write("August");
}
if(month == 9)
{
    write("September");
}
if(month == 10)
{
    write("October");
}
if(month == 11)
{
    write("November");
}
if(month == 12)
{
    write("December");
}
else
{
    write("Cannot be a month!");
}
		

سنحصل على النتيجة التالية عند التشغيل مع الإشارة إلى أننا قمنا بتلوين القيمة التي أدخلناها عند التشغيل بلون مختلف.

Enter month number: 3
MarchCannot be a month!

جرب الكود


الصورة التالية توضّح كيف قام محرر الكود بالمرور على جميع الشروط.

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة