لطباعة كلمة عشر مرات يمكن نسخ السطر عشر مرات، لكن هذا متعب، وتعديله أصعب. جملة for تكتب الأمر مرة واحدة وتكرّره بالعدد الذي نحدده:
for (let i = 0; i < 3; i++) {
console.log("Red lorry, yellow lorry");
}Red lorry, yellow lorry Red lorry, yellow lorry Red lorry, yellow lorry
بين القوسين ثلاثة أجزاء تفصلها فواصل منقوطة، وهي تتحكم في عدد المرات عن طريق متغير يُسمّى العدّاد:
| الجزء | في المثال | معناه |
|---|---|---|
| البداية | let i = 0 | العدّاد يبدأ من 0 |
| الشرط | i < 3 | يستمر التكرار ما دام الشرط صحيحًا |
| الزيادة | i++ | يزيد العدّاد 1 بعد كل مرة |
i++ اختصار لـ i = i + 1. والعدّاد متغير عادي، فيمكن طباعته لنرى قيمته في كل مرة:
for (let i = 0; i < 5; i++) {
console.log(i);
}0 1 2 3 4
وللعدّ من 1 نجعل البداية 1 والشرط <=، ونربط العدّاد بالنص بـ +:
for (let lap = 1; lap <= 4; lap++) {
console.log("Lap " + lap);
}Lap 1 Lap 2 Lap 3 Lap 4
i < 10 يتكرر 10 مرات. أما إذا بدأ من 1 مع i < 3 فيتكرر مرتين فقط (1 و 2). تأكد دائمًا من البداية والشرط معًا.switch داخل for
في درس switch وزّعنا طالبًا واحدًا على مجموعة بباقي القسمة. الآن نكرر نفس الفحص لكل طلاب الفصل بحلقة واحدة:
for (let num = 1; num <= 8; num++) {
switch (num % 4) {
case 1:
console.log("Student " + num + " is in Group A");
break;
case 2:
console.log("Student " + num + " is in Group B");
break;
case 3:
console.log("Student " + num + " is in Group C");
break;
case 0:
console.log("Student " + num + " is in Group D");
break;
}
}Student 1 is in Group A Student 2 is in Group B Student 3 is in Group C Student 4 is in Group D Student 5 is in Group A Student 6 is in Group B Student 7 is in Group C Student 8 is in Group D
for لا يوجد خارج الحلقة؛ استخدامه بعدها يسبب خطأ:for (let i = 0; i < 2; i++) {
console.log(i);
}
console.log(i);0 1 ReferenceError: i is not defined
تدريبات
أكمل ما بين القوسين ليُطبع silk عشر مرات، واسم العدّاد count يبدأ من 0.
for (___) {
console.log("silk");
}اضغط «تشغيل» لترى النتيجة. اطبع Good morning سبع مرات بجملة for، والعدّاد i يبدأ من 0 مع i++.
اضغط «تشغيل» لترى النتيجة. أكمل الفراغين ليطبع البرنامج Hello ثلاث مرات (العدّاد i يبدأ من 0).
___ (___) {
console.log("Hello");
}اضغط «تشغيل» لترى النتيجة. نوزع الطلاب من 1 إلى 10 على ثلاث مجموعات حسب باقي قسمة i على 3. أكمل الفراغات.
___ (let i = 1; i <= 10; i++) {
___ (___) {
case 0:
console.log("Student " + i + " is in Group C");
break;
case 1:
console.log("Student " + i + " is in Group A");
break;
case 2:
console.log("Student " + i + " is in Group B");
break;
}
}اضغط «تشغيل» لترى النتيجة. امتحان فيه 5 أسئلة. اطبع Question 1 of 5 ثم Question 2 of 5 وهكذا حتى Question 5 of 5.
تلميح
ابدأ العدّاد من 1 واستخدم<=.اضغط «تشغيل» لترى النتيجة. اطبع مضاعفات 5 من 5 إلى 50، كل رقم في سطر. اجعل الزيادة i = i + 5 بدل i++.
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
for (let i = 0; i < n; i++) { … }تكرر الأوامر n مرة.i++تعنيi = i + 1، والعدّاد متغير يمكن طباعته واستخدامه.- العدّاد المُعلن في
forلا يُستخدم خارج الحلقة.