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