جمل الشرط في الخوارزميات

جمل الشرط في الخوارزميات

شكل جمل الشرط بشكل عام

في لغات البرمجة يوجد ثلاث جمل يمكن إستخدامها لوضع شروط تحدد متى يتم تنفيذ كود معين أم لا. الجمل المستخدمة في وضع الشروط هي 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");
    }
	
}
		

نتيجة التشغيل

إذا قمت بتغيير قيمة المتغير month فإن النتيجة ستتغير أيضاً.

شرح الكود

  • عدد الأشهر في السنة هو 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. و سيعطي النتيجة التالية عند تشغيله.

نتيجة التشغيل