مفهوم الحلقات
نستخدم الحلقات ( Loops ) لجعل الكود يعاد تنفيذه ضمن شروط معينة.
بشكل عام, حين يكون هناك حاجة لتنفيذ الكود أكثر من مرة فإن أول ما نفكر به هو استخدام الحلقات.
سنتعرف في هذا الدرس على الحلقات الأساسية الموجودة في معظم لغات البرمحة.
نستخدم الحلقات ( Loops ) لجعل الكود يعاد تنفيذه ضمن شروط معينة.
بشكل عام, حين يكون هناك حاجة لتنفيذ الكود أكثر من مرة فإن أول ما نفكر به هو استخدام الحلقات.
سنتعرف في هذا الدرس على الحلقات الأساسية الموجودة في معظم لغات البرمحة.
هناك ثلاث أنواع من الحلقات التي يمكن استخدامها لتكرار الكود, و لكن طريقة استخدامها تختلف قليلاً و كل واحدها يتم تعريفها بطريقة مختلفة قليلاً.
الحلقة for
تستخدم لتنفيذ الأوامر عدد محدد من المرّات.
هنا يتم تحديد عدد المرات التي ستستمر الحلقة فيها في تنفيذ الكود منذ البداية.
for ( condition ) { }
الحلقة while
تستخدم لتنفيذ الأوامر مرات غير محددة.
هنا الحلقة تستمر في إعادة تنفيذ الأوامر طالما أن الشرط الموضوع فيها لا زال يتحقق.
while ( condition ) { }
الحلقة do while
تستخدم لتنفيذ الأوامر مرات غير محددة.
هنا الحلقة تستمر في إعادة تنفيذ الأوامر طالما أن الشرط الموضوع فيها لا زال يتحقق.
الفرق الوحيد بينها و بين الحلقة while
أنها تنفذ الأوامر الموضوعة فيها مرّة واحدة على الأقل.
do { } while ( condition );
طريقة عمل كل حلقة من الحلقات التي ذكرناها الآن سنشرحها بدقة في دروس مقبلة.
إذا طلبت من إنسان أن يلفظ كلمة Algo خمس مرات على سبيل المثال.
فإنه سيقول: Algo, Algo, Algo,Algo, Algo.
لاحظ أن الإنسان قد يستخدم أصابعه لكي يحسب كم مرة قال الكلمة "Algo" أو قد يستخدم ورقة و قلم في حال طلبت منه لفظها 100 مرات حتى لا يخطئ بالعد.
إذا أردت جعل الكمبيوتر يطبع كلمة Algo عشر مرات, عليك إستخدام حلقة تنفذ الكود الذي بداخلها 10 مرات. الحلقة بدورها ستعتمد في عملية العد على متغير عادي يسمى عدّاد (Counter).
فكرة العداد هي تخزين عدد المرات التي قامت فيها الحلقة بتنفيذ الأوامر التي بداخلها. في كل مرة يتم فيها تنفيذ جميع الأوامر الموضوعة بداخل الحلقة, يتم زيادة العداد واحداً.
إذاً عند إستخدام حلقة يمكننا معرفة عدد المرات التي قام فيها الحاسوب بتنفيذ الأوامر الموجودة فيها من خلال العداد.
عند التعامل مع أي حلقة, أول شيء عليك التفكير فيه هو وضع الشرط الذي يحدد كم مرة ستقوم الحلقة بإعادة تنفيذ الكود الموضوع فيها. فمثلاً لجعل الحلقة تعيد تنفيذ الأوامر الموضوعة فيها 5 مرات يمكنك العد بطرق مختلفة و الحصول على نفس النتيجة كالتالي:
5 - 4 - 3 - 2 - 1
ستحصل على 5 مرات.4 - 3 - 2 - 1 - 0
ستحصل على 5 مرات.10 - 9 - 8 - 7 - 6
ستحصل على 5 مرات.1 - 2 - 3 - 4 - 5
ستحصل على 5 مرات.0 - 1 - 2 - 3 - 4
ستحصل على 5 مرات.المثال التالي يوضح لك فقط كيف يمكن إستغلال الحلقات لإنجاز المهام بسرعة و بكود أقل.
الآن في حال أردنا طباعة جميع الأرقام من 1 إلى 10 و كل رقم منهم على سطر جديد يوجد أسلوبين لفعل ذلك:
write()
.هنا لاحظ أننا قمنا بكتابة كل رقم سيتم طباعته بأنفسنا.
write("1\n"); write("2\n"); write("3\n"); write("4\n"); write("5\n"); write("6\n"); write("7\n"); write("8\n"); write("9\n"); write("10\n");
سنحصل على النتيجة التالية عند التشغيل.
هنا لاحظ أننا قمنا بكتابة أمر الطباعة مرة واحدة فقط و العدد تم تكراره بشكل تصاعدي.
for (var i=1; i<=10; i++) { write( i + "\n"); }
سنحصل على النتيجة التالية عند التشغيل.
طريقة عمل الحلقة المستخدمة في هذا المثال سنشرحها لك بالتفصيل في الدرس التالي. المطلوب منك فقط أن تقارن حجم الكود.