أهداف الدرس
في هذا الدرس ستتعلم كيف تعرّف الحلقة for
في الخوارزميات و في جافا, كما سنوضح لك تماماً ما الذي يحدث في الذاكرة عندما يتم تنفيذ الأوامر الموضوعة في الحلقة.
ملاحظة: إبتداءاً من هذا الدرس و حتى إنتهاء باقي الدروس, ستستخدم الحلقات في معظم التمارين لذلك ركز جيداً على طريقة عملهم حتى لا تجد أي صعوبة وقتها.
طريقة عمل الحلقة for
في كل دورة بداخل الحلقة for
و قبل أن يبدأ الكمبيوتر بتنفيذ الأوامر الموضوعة فيها, يقوم الكمبيوتر بمقارنة قيمة العداد الحالية مع الشرط الموضوع.
إذا كانت قيمة العداد الحالية أصغر من قيمة الشرط, يقوم بتنفيذ الأوامر الموضوعة بداخل الحلقة مرة واحدة ثم يضيف أو ينقص واحداً من قيمة العداد.
بعدها يرجع للأعلا ليقارن قيمة العداد الحالية مع قيمة الشرط من جديد و يظل على هذه الحال حتى تصبح قيمة العداد لا تتوافق مع الشرط الموضوع.
عندما تصبح قيمة العداد لا تستوفي الشرط الموضوع, يتم إيقاف الحلقة و الخروج منها و إكمال باقي الأوامر الموجودة في البرنامج بعدها.
و في حال عدم وجود أوامر أخرى بعدها سيتم عرض الوقت الذي إستغرقه البرنامج في تنفيذ الكود فقط.
الفيديو التالي يوضح طريقة تعريف الحلقة for
في الخوارزميات, و طريقة عملها بدقة.
تمارين حول الحلقة for
الحلقة for في الخوارزميات - التمرين الأول
المطلوب
عرف متغير يقبل نص كقيمة و أعطه إسم
loop
و لا تعطيه أي قيمة مباشرةً عند إنشائه.بعدها قم بإعطاء المتغير
loop
القيمةyour first loop
.أعرض هذه الجملة 5 مرات بإستخدام حلقة التكرار
for
.ثم إطبع خطا بينهم مثل هذا
---------------------------
.ثم إطبع إسمك 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
لأن الهدف كان التركيز على طريقة عملها.
في الدروس المقبلة استخدمناها في أغلب التمارين الموضوعة.