جمل الشرط في الخوارزميات
شكل جمل الشرط بشكل عام
في لغات البرمجة يوجد ثلاث جمل يمكن إستخدامها لوضع شروط تحدد متى يتم تنفيذ كود معين أم لا. الجمل المستخدمة في وضع الشروط هي if
, else if
, else
.
طريقة كتابتهم ( Syntax )
if ( condition ) { // إذا كان الشرط صحيحاً نفذ هذا الكود } else if ( condition ) { // إذا كان الشرط صحيحاً نفذ هذا الكود } else { // نفذ هذا الكود في حال لم يتم التعرّف على الكود في أي شرط }
ملاحظة
لست بحاجة إلى إستخدام الجمل الثلاثة في كل شرط تضعه في البرنامج, و لكنك مجبر على إستخدام جملة الشرط if
مع أي شرط.
تابع كل الدرس حتى تتعرّف على جميع طرق وضع الشروط.
جملة الشرط if
if
في اللغة العربية تعني " إذا ". و هي تستخدم فقط في حال كنت تريد تنفيذ كود معين حسب شرط معين.
المثال الأول
إذا كانت قيمة المتغير S
أكبر من 5 إطبع جملة :   S is bigger than 5
.
كود الجافا
public class If_Statment { public static void main (String[] args) { int S = 0; if ( S > 5 ) { System.out.print("S is bigger than 5."); } System.out.print("\n"); } }
شرح الكود
في البداية, إشتغل البرنامج بدون أي مشكلة و لكنه لم يظهر أي نتيجة لأن الشرط لم يتحقق.
int S = 0;
قمنا بتعريف المتغير S
, و أعطيناه 0 كقيمة.
if ( S > 5 ) { System.out.print("S is bigger than 5."); }
الآن, إنتبه إلى جملة الشرط if ( S > 5 )
لتعرف كيف سيتعامل الكمبيوتر مع هذا الشرط بدقة.
سيرى أولاً قيمة المتغير
S
, و بعد أن يعرف قيمتها سيرى إذا كانت أكبر من 5.في حال وجد أن قيمة المتغير
S
أكبر من 5 سينفذ كل الكود الموجود في حدود جملة الشرطif
.في حال لم تكن أكبر منها سيتجاهل كل شيء موجود بداخل جملة الشرط.
هنا قام البرنامج بتجاهل الكود الموجود في حدود جملة الشرط لأن قيمة المتغير
S
ليست أكبر من 5.
المثال الثاني
إذا كانت قيمة المتغير S
أكبر من 5 إطبع جملة :   S is bigger than 5
.
إنتبه: هذا نفس المثال السابق و لكننا قمنا بتغير قيمة المتغير S
فقط.
كود الجافا
public class If_Statment { public static void main (String[] args) { int S = 20; if ( S > 5 ) { System.out.print("S is bigger than 5."); } System.out.print("\n"); } }
شرح الكود
لاحظ الفرق, هنا نفذ البرنامج دالة الطباعة الموجودة في حدود جملة الشرط
if
.قمنا بتعريف المتغير
S
, و أعطيناه قيمة 20هنا قام البرنامج بتنفيذ الكود الموجود في حدود جملة الشرط لأن قيمة المتغير
S
أكبر من 5.
جملة الشرط else
else
في اللغة العربية تعني "أي شيء آخر", و هي تستخدم فقط في حال كنت تريد تنفيذ كود معين لا يطابق أي شرط موجود بداخل الجملة if
أو الجمل else if
و يجب وضعها دائماً في الأخير, لأنها تستخدم في حال لم يتم تنفيذ أي جملة شرطية قبلها.
إذاً, إذا نفذ البرنامج جملة الـ if
فإنه سيتجاهل الجملة else
.
و إذا لم ينفذ أي جملة من جمل الـ if
و else if
فإنه سينفذ الجملة else
.
مثال
إذا كانت قيمة المتغير name
تساوي Mhamad
إطبع جملة :   This is my name
.
كود الجافا
public class If_Else_Statments { public static void main (String[] args) { String name = "Mhamad"; if ( name == "Mhamad" ) { System.out.print("This is my name."); } else { System.out.print("NOT my name!"); } System.out.print("\n"); } }
شرح الكود
في هذا البرنامج إستخدمنا الجملتين
if
وelse
.قمنا بتعريف المتغير
name
, و أعطيناه قيمةMhamad
.ركز جيداً على جملة الشرط التالية
if ( name == "Mhamad" )
لاحظ أننا وضعنا إثنتين =
و ليس واحدة =
.
وضعنا ==
للمقارنة, لنرى هل قيمة المتغير name
تساوي Mhamad
.
بما أن قيمة المتغير name
تساوي Mhamad
فإن الكمبيوتر سينفذ كل الكود الموجود في حدود الجملة if
و سيتجاهل الجملة else
.
ملاحظة
إذا كنت تريد مقارنة متغيرين مع بعضهما لترى إذا كانت قيمهم متساوية, يجب أن تضع بينهما ==
و ليس =
.
لو عدت للمثال السابق و وضعت =
بدلاً من ==
لأدى ذلك إلى خطأ منطقي و ليس برمجي, أي لو كتبت الكود كالتالي:
if ( name = "Mhamad" )
في هذه الحالة الكمبيوتر سيظن أنك تريد وضع القيمة Mhamad
كقيمة جديدة للمتغير name
و ليس مقارنة قيمة المتغير name
مع القيمة Mhamad
.
كما أنه سيظهر لك خطأ لأنه يجب وضع شرط في الجملة if
و ليس إعطاء قيمة لمتغير فقط.
جملة الشرط else if
جملة else if
تستخدم إذا كنت تريد وضع أكثر من إحتمال ( أي أكثر من شرط ).
جملة أو جمل الشرط else if
يوضعون في الوسط أي بين الجملتين if
و else
.
مثال
إذا كانت قيمة المتغير month
تساوي رقم بين 1 و 12 , إطبع إسم الشهر على حسب رقم الشهر.
كود الجافا
public class MonthsOfTheYear { public static void main (String[] args) { int month = 3; if ( month == 1 ) { System.out.print("January"); } else if ( month == 2 ) { System.out.print("February"); } else if ( month == 3 ) { System.out.print("March"); } else if ( month == 4 ) { System.out.print("April"); } else if ( month == 5 ) { System.out.print("May"); } else if ( month == 6 ) { System.out.print("June"); } else if ( month == 7 ) { System.out.print("Jul"); } else if ( month == 8 ) { System.out.print("August"); } else if ( month == 9 ) { System.out.print("September"); } else if ( month == 10 ) { System.out.print("October"); } else if ( month == 11 ) { System.out.print("November"); } else if ( month == 12 ) { System.out.print("December"); } else { System.out.print("NOT a Month!"); } System.out.print("\n"); } }
شرح الكود
عدد الأشهر في السنة هو 12 شهراً. فكرة البرنامج أنه عند تشغيله, نقوم بإدخال رقم الشهر لكي يطبع لنا إسمه.
في هذا البرنامج إستخدمنا الجمل
if
وelse if
وelse
.قمنا بتعريف المتغير
month
, و أعطيناه قيمة 3.بما أنه عندنا 12 شهراً, إذاً عندنا 12 إحتمال.
12 إحتمال يعني أنه يوجد جملة
if
واحدة بالإضافة إلى 11 جملةelse if
بعدها.هنا وضعنا الجملة
else
لأن أي رقم ليس بين 1 و 12 لا يمكن أن يكون رقم لشهر.
إنتبه
لو وضعنا if
بدل جميع الـ else if
سيؤدّي ذلك إلى أخطاء عدة في الكود
والسبب سيقوم البرنامج باختبار جميع جمل الـ if
و سينفذ جملة else
مهما كانت قيمة المتغير month
.
ضع if
بدل جميع الـ else if
, ثم قم بتشغيل البرنامج و لاحظ كيف أنه سينفذ أيضاً الجملة else
. و سيعطي النتيجة التالية عند تشغيله.