algorithms-for-loop | الحلقة فور

أهداف الدرس

في هذا الدرس ستتعلم كيف تعرّف الحلقة for في الخوارزميات و في جافا, كما سنوضح لك تماماً ما الذي يحدث في الذاكرة عندما يتم تنفيذ الأوامر الموضوعة في الحلقة.
ملاحظة: إبتداءاً من هذا الدرس و حتى إنتهاء باقي الدروس, ستستخدم الحلقات في معظم التمارين لذلك ركز جيداً على طريقة عملهم حتى لا تجد أي صعوبة وقتها.

طريقة عمل الحلقة for

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

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

الفيديو التالي يوضح طريقة تعريف الحلقة for في الخوارزميات, و طريقة عملها بدقة.

تمارين حول الحلقة for


الحلقة for في الخوارزميات - التمرين الأول

المطلوب

  1. عرف متغير يقبل نص كقيمة و أعطه إسم loop و لا تعطيه أي قيمة مباشرةً عند إنشائه.

  2. بعدها قم بإعطاء المتغير loop القيمة your first loop.

  3. أعرض هذه الجملة 5 مرات بإستخدام حلقة التكرار for.

  4. ثم إطبع خطا بينهم مثل هذا ---------------------------.

  5. ثم إطبع إسمك 3 مرات على نفس السطر بإستخدام حلقة التكرار for.


النتيجة المطلوبة

الخوارزمية

شرح طريقة عمل الخوارزمية بدقة

كود الجافا

		public class FirstLoop {

		public static void main (String[] args) {

        String loop;
        loop = "your first loop";

        for (int i=1; i <=5; i=i+1)
        {
		System.out.print(loop + "\n");
        }

        System.out.print("---------------------------\n");

        for (int i=1; i <=3; i=i+1)
        {
		System.out.print("Mhamad ");
        }

        System.out.print("\n");

		}

		}
	  

شرح الكود

  • البرنامج FirstLoop يحتوي على ست أوامر و حلقتين.



  • 			String loop;
    			loop = "your first loop";
    		  
  • هنا قمنا بتعريف المتغير loop, ثم أعطيناه القيمة your first loop.



  • 			for (int i=1; i <=5; i=i+1)
    			{
    			System.out.print(loop + "\n");
    			}
    		  
  • هنا قمنا بتعريف حلقة for مهمتها فقط تنفيذ الكود الموجود بداخلها 5 مرات.

  • في كل دورة من دورات هذه الحلقة سيتم عرض قيمة المتغير loop ثم النزول على سطر جديد.

  • معنى الأوامر المكتوبة في الحلقة:

    • الكود int i=1; يعني أن أول قيمة للعداد هي 1.

    • الكود i <=5; يعني أن الحلقة ستستمر في العمل طالما أن قيمة العداد أصغر أو تساوي 5.

    • الكود i=i+1 يعني أن قيمة العداد في الحلقة تزيد 1 في نهاية كل دورة. فعلياً هذا الكود يعني أنه سيتم إضافة 1 على قيمة المتغير i الحالية و وضع الناتج في المتغير i من جديد.



    			System.out.print("---------------------------\n");
    		  
  • هنا قمنا بطباعة ما يشبه الخط ثم جعلنا الشيء الذي يأتي بعده يظهر على سطر جديد.



  • 			for (int i=1; i <=3; i=i+1)
    			{
    			System.out.print("Mhamad ");
    			}
    		  
  • هنا قمنا بتعريف حلقة for مهمتها فقط تنفيذ الكود الموجود بداخلها 3 مرات.

  • في كل دورة من دورات هذه الحلقة سيتم عرض النص Mhamad ثم وضع مسافة فارغة بعده.



  • 			System.out.print("\n");
    		  
  • هنا وضعنا الـ \n في جملة الطباعة حتى يتم طباعة الوقت الذي إستغرقه الكمبيوتر في تنفيذ البرنامج على سطر جديد.



الحلقة for في الخوارزميات - التمرين الثاني

المطلوب

أنشئ حلقة تطبع لك جميع الأرقام من 1 إلى 10.


النتيجة المطلوبة
الخوارزمية
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
		public class CountToTen {

		public static void main (String[] args) {

        for (int i=1; i <=10; i=i+1)
        {
		System.out.print(i + "\n");
        }

		}

		}
	  
شرح الكود
  • في هذا البرنامج قمنا فقط بتعريف حلقة for مهمتها تنفيذ الكود الموجود بداخلها 10 مرات.

  • في كل دورة من دورات هذه الحلقة سيتم عرض قيمة العداد i ثم النزول على سطر جديد.

  • معنى الأوامر المكتوبة في الحلقة:

    • الكود int i=1; يعني أن أول قيمة للعداد هي 1.

    • الكود i <=10; يعني أن الحلقة ستستمر في العمل طالما أن قيمة العداد أصغر أو تساوي 10.

    • الكود i=i+1 يعني أن قيمة العداد في الحلقة تزيد 1 في نهاية كل دورة. فعلياً هذا الكود يعني أنه سيتم إضافة 1 على قيمة المتغير i الحالية و وضع الناتج في المتغير i من جديد.



ملاحظة

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