الحلقات التكرارية (متقدم)
مقدمة
تحدثنا عن أساسيات الحلقات التكرارية في درس الحلقات التكرارية في المستوى اﻹبتدائي، وتعمقنا في الحلقات التكرارية وتفاصيلها المتقدمة في درس الحلقات التكرارية (متوسط) واﻵن سنتعلم بعض اﻷمور واﻷنواع الجديدة من الحلقات التكرارية التي لم نذكرها في المستويات السابقة.
قطع الحلقة التكرارية 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);
}
1
2
يمكنك استخدام اﻷمر break مع أي نوع من الحلقات التكرارية (while, for ...)
الحلقة التكرارية do.. while
do.. while هو نوع جديد من الحلقات التكرارية ويُعتبر مماثل للحلقة التكرارية while لكن اﻹختلاف بينهم أن المفسر يتحقق من الشرط بعد تنفيذ كتلة أوامر الحلقة التكرارية وذلك يعني أن كتلة اﻷوامر تُنفذ على اﻷقل مرة واحدة.
مثال لحلقة تكرارية تتنفذ أوامرها على الرغم من أن الشرط يساوي
false(لا يتحقق)
var i = 5;
do {
console.log("test");
i++
} while (i > 10)
يقوم المفسر بتنفيذ كتلة الأوامر أولاً (عندما يمر على do)، ثم بعد كتلة اﻷوامر يجد while فيتحقق من الشرط، إذا كان الشرط يساوي true يعود المفسر لتنفيذ كتلة اﻷوامر مرة أخرى، ثم يتحقق من الشرط... وتتكرر العملية إلى أن ﻻ يتحقق شرط الحلقة التكرارية (عندما يساوي false)
do.. while قليلة الاستخدام ولكننا نستخدمها إذا أردنا أن تتنفذ الحلقة التكرارية على اﻷقل مرة واحدة
مثال آخر على حلقة تكرارية تطبع اﻷعداد من 0 إلى 4
var i = 0;
do {
console.log(i);
i++
} while (i <= 4)
1
2
3
4
الحلقة التكرارية forEach
الحلقة forEach هي حلقة تكرارية كثيرة اﻹستخدام، حيث أنها تختصر وتسهل الوصول لكل عناصر المصفوفات، فبدلاً من استخدام الحلقة while أو الحلقة for للوصول لكل عناصر المصفوفة كما تعلمنا في درس المصفوفات .. يمكننا اﻵن استخدام الحلقة التكرارية forEach
كتابة الحلقة التكرارية forEach
var numbers = [1, 2, 3, 4];
numbers.forEach(function (num){
console.log(num);
});
2
3
4
لاحظ أن الحلقة التكرارية forEach تأخذ دالة استجابة كمدخل، وتقوم باستدعاء هذه الدالة مع كل عنصر من عناصر المصفوفة.
الوصول لمُفتاح عناصر المصفوفة
يمكننا إضافة مُدخل آخر لدالة الاستجابة مع الحلقة التكرارية forEach حتى نتمكن من الوصول لمُفتاح (index) العنصر الحالي...
var countries = ["Palestine", "Syria", "Egypt"];
countries.forEach(function (country, index){
console.log(index + ': ' + country);
});
1: Syria
2: Egypt
لا يُمكن استخدام اﻷمر break لقطع الحلقة التكرارية forEach.. سيظهر لك الخطأ التالي
Uncaught SyntaxError: Illegal break statement
المساهمين
وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github
