الحلقة لا تكرر الطباعة فقط، بل أي عملية. لحساب 2×2×2×2×2 نبدأ بـ num = 1 ونضربه في 2 خمس مرات، فيحمل المتغير الناتج من دورة إلى التالية:
let num = 1;
for (let i = 0; i < 5; i++) {
num = num * 2;
console.log(num);
}2 4 8 16 32
ويمكن استخدام العدّاد نفسه في الحساب. هنا يأخذ i القيم من 1 إلى 5، فيحسب البرنامج 1×2×3×4×5 ويطبع الناتج النهائي فقط لأن الطباعة بعد الحلقة:
let num = 1;
for (let i = 1; i <= 5; i++) {
num = num * i;
}
console.log(num);120
وللجمع نبدأ من 0. والاختصار total += i يعني total = total + i:
let total = 0;
for (let i = 1; i <= 10; i++) {
total += i;
}
console.log(total);55
if داخل الحلقة
بوضع if داخل الحلقة ننفّذ أمرًا في دورة معينة فقط. هنا تمرين بطن خمس مرات، وبعد المرة الثالثة جري. العدّاد يبدأ من 0، فالمرة الثالثة هي i == 2:
for (let i = 0; i < 5; i++) {
console.log("sit-up");
if (i == 2) {
console.log("running");
}
}sit-up sit-up sit-up running sit-up sit-up
حلقة داخل حلقة
يمكن وضع حلقة كاملة داخل حلقة أخرى. في كل دورة من الحلقة الخارجية تعمل الحلقة الداخلية من أولها لآخرها. هكذا نطبع جدول ضرب صغيرًا:
for (let i = 1; i <= 3; i++) {
for (let j = 1; j <= 3; j++) {
console.log(i + " x " + j + " = " + i * j);
}
}1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 3 x 1 = 3 3 x 2 = 6 3 x 3 = 9
ولرسم شكل نبني كل سطر بإضافة "*" إلى نص فارغ في الحلقة الداخلية، ثم نطبعه في الحلقة الخارجية:
for (let row = 1; row <= 3; row++) {
let line = "";
for (let col = 1; col <= 5; col++) {
line = line + "*";
}
console.log(line);
}***** ***** *****
i وj). عدّاد الحلقة الداخلية يبدأ من جديد في كل دورة من الخارجية، لذلك تعمل 3 × 3 = 9 مرات.تدريبات
احسب 7×7×7×7×7: أعلن num = 1، وكرر num = num * 7 خمس مرات (i من 0 وأصغر من 5)، ثم اطبع num مرة واحدة في النهاية.
اضغط «تشغيل» لترى النتيجة. احسب 1×2×3×…×10 باستخدام العدّاد i (من 1 إلى 10)، ثم اطبع الناتج.
اضغط «تشغيل» لترى النتيجة. احسب 0+1+2+3+4+5: أعلن num = 0، وكرر num = num + i ست مرات (i من 0 وأصغر من 6)، ثم اطبع num.
اضغط «تشغيل» لترى النتيجة. احسب 5040÷1÷2÷3÷4÷5: ابدأ بـ num = 5040، وكرر num = num / i و i من 1 إلى 5، ثم اطبع num.
اضغط «تشغيل» لترى النتيجة. البرنامج يطبع lunch box خمس مرات. أضف ما يطبع fruit بعد المرة الرابعة مباشرة.
for (let i = 0; i < 5; i++) {
console.log("lunch box");
}اضغط «تشغيل» لترى النتيجة. اجمع الأعداد الزوجية فقط من 1 إلى 20 واطبع المجموع مرة واحدة في النهاية.
تلميح
العدد زوجي إذا كانi % 2 == 0.اضغط «تشغيل» لترى النتيجة. اطبع هذا الدرج بحلقتين متداخلتين (السطر رقم r فيه r نجمة):**********
تلميح
اجعل شرط الحلقة الداخليةcol <= row.اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
- لتكرار حساب: أعلن المتغير قبل الحلقة (1 للضرب و 0 للجمع) وحدّثه داخلها، مثل
num = num * iأوtotal += i. ifداخل الحلقة تنفّذ أمرًا في دورات معينة، مثلif (i == 2).- في الحلقات المتداخلة تعمل الحلقة الداخلية كاملة في كل دورة من الخارجية، ولكل منهما عدّاد مختلف.