الحلقات التكرارية (متقدم)

مقدمة

تحدثنا عن أساسيات الحلقات التكرارية في درس الحلقات التكرارية في المستوى اﻹبتدائي، وتعمقنا في الحلقات التكرارية وتفاصيلها المتقدمة في درس الحلقات التكرارية (متوسط) واﻵن سنتعلم بعض اﻷمور واﻷنواع الجديدة من الحلقات التكرارية التي لم نذكرها في المستويات السابقة.

قطع الحلقة التكرارية break

في بعض اﻷحيان نحتاج لإيقاف الحلقة التكرارية إذا حدث شيئاً معين، يمكننا استخدام اﻷمر break لإعطاء المفسر أمر بالتوقف عن التكرار وقطع الحلقة التكرارية...

عندما يجد المفسر اﻷمر break; فإنه يقفز خارج كتلة الحلقة التكرارية ليقوم بتنفيذ اﻷسطر التي تأتي بعدها

لاحظ المثال التالي، حلقة تكرارية تطبع اﻷعداد من 0 إلى 10 ولكننا أعطينا المفسر أمر بإيقاف الحلقة التكرارية إن كانت قيمة i تساوي 3 وبالتالي تتوقف الحلقة التكرارية في الدورة الثالثة قبل طباعة 3 وتطبع فقط اﻷعداد 0, 1, 2

for (var i = 0; i<= 10; i++){
  if (i === 3){
    break;
  }
  console.log(i);
}
ناتج التشغيل 0
1
2

يمكنك استخدام اﻷمر break مع أي نوع من الحلقات التكرارية (while, for ...)

الحلقة التكرارية do.. while

do.. while هو نوع جديد من الحلقات التكرارية ويُعتبر مماثل للحلقة التكرارية while لكن اﻹختلاف بينهم أن المفسر يتحقق من الشرط بعد تنفيذ كتلة أوامر الحلقة التكرارية وذلك يعني أن كتلة اﻷوامر تُنفذ على اﻷقل مرة واحدة.

مثال لحلقة تكرارية تتنفذ أوامرها على الرغم من أن الشرط يساوي false (لا يتحقق)

var i = 5;
do {
  console.log("test");
  i++
} while (i > 10)
ناتج التشغيل test

يقوم المفسر بتنفيذ كتلة الأوامر أولاً (عندما يمر على do)، ثم بعد كتلة اﻷوامر يجد while فيتحقق من الشرط، إذا كان الشرط يساوي true يعود المفسر لتنفيذ كتلة اﻷوامر مرة أخرى، ثم يتحقق من الشرط... وتتكرر العملية إلى أن ﻻ يتحقق شرط الحلقة التكرارية (عندما يساوي false)

do.. while قليلة الاستخدام ولكننا نستخدمها إذا أردنا أن تتنفذ الحلقة التكرارية على اﻷقل مرة واحدة

مثال آخر على حلقة تكرارية تطبع اﻷعداد من 0 إلى 4

var i = 0;
do {
  console.log(i);
  i++
} while (i <= 4)
ناتج التشغيل 0
1
2
3
4

الحلقة التكرارية forEach

الحلقة forEach هي حلقة تكرارية كثيرة اﻹستخدام، حيث أنها تختصر وتسهل الوصول لكل عناصر المصفوفات، فبدلاً من استخدام الحلقة while أو الحلقة for للوصول لكل عناصر المصفوفة كما تعلمنا في درس المصفوفات .. يمكننا اﻵن استخدام الحلقة التكرارية forEach

كتابة الحلقة التكرارية forEach

var numbers = [1, 2, 3, 4];
numbers.forEach(function (num){
  console.log(num);
});
ناتج التشغيل 1
2
3
4

لاحظ أن الحلقة التكرارية forEach تأخذ دالة استجابة كمدخل، وتقوم باستدعاء هذه الدالة مع كل عنصر من عناصر المصفوفة.

الوصول لمُفتاح عناصر المصفوفة

يمكننا إضافة مُدخل آخر لدالة الاستجابة مع الحلقة التكرارية forEach حتى نتمكن من الوصول لمُفتاح (index) العنصر الحالي...

var countries = ["Palestine", "Syria", "Egypt"];
countries.forEach(function (country, index){
  console.log(index + ': ' + country);
});
ناتج التشغيل 0: Palestine
1: Syria
2: Egypt

لا يُمكن استخدام اﻷمر break لقطع الحلقة التكرارية forEach.. سيظهر لك الخطأ التالي Uncaught SyntaxError: Illegal break statement

المساهمين

وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github