تذكير: حلقة while تكرر ما دام الشرط صحيحًا. نمشي لفّات طول كل منها 6 كم ونطبع المسافة الكلية بعد كل لفّة، حتى تتجاوز 30 كم:
let distance = 0;
while (distance < 30) {
distance = distance + 6;
console.log("Walked a total of " + distance + "km");
}Walked a total of 6km Walked a total of 12km Walked a total of 18km Walked a total of 24km Walked a total of 30km
distance < 30. الحلقة تكتب شرط الاستمرار، لا شرط التوقف.if داخل while
وديعة في البنك قيمتها 10000 تُضرب في 1.2 كل سنتين. بعد كم سنة تتجاوز 50000؟ نزيد السنة في كل دورة، لكن نضرب المال فقط في السنوات الزوجية. والسنة زوجية إذا كان باقي قسمتها على 2 صفرًا: year % 2 == 0.
let money = 10000;
let year = 0;
while (money < 50000) {
year++;
if (year % 2 == 0) {
money = money * 1.2;
}
}
console.log("It will pass 50000 in " + year + " years");It will pass 50000 in 18 years
continue
كأس العالم تُقام كل 4 سنوات بدءًا من 2026. لنفترض أن بطولة 2050 أُلغيت ولا نريد عدّها. الكلمة continue تتخطّى بقية الأوامر في الدورة الحالية وتعود مباشرة إلى فحص الشرط لتبدأ الدورة التالية.
let year = 2026;
let count = 0;
while (year <= 2100) {
if (year == 2050) {
year = year + 4;
continue;
}
count++;
year = year + 4;
}
console.log("There will be " + count + " tournaments by 2100");There will be 18 tournaments by 2100
year قبل continue. لو نسيت ذلك تبقى year تساوي 2050، فتتخطّى الحلقة كل شيء في كل دورة ولا تنتهي أبدًا. وcontinue لا توقف الحلقة؛ هي تتخطّى دورة واحدة فقط.تدريبات
أكمل الحلقة: ما دامت distance أقل من 100 أضف 6 إليها، ثم اطبع المسافة الكلية: Walked a total of 6km ثم Walked a total of 12km وهكذا حتى Walked a total of 102km.
let distance = 0;
___ (___) {
___;
console.log("Walked a total of " + distance + "km");
}اضغط «تشغيل» لترى النتيجة. الوديعة تبدأ من 20000 وتُضرب في 1.2 كل سنتين. أكمل: كرر ما دام money أقل من 50000، وزد year بمقدار 1 في كل دورة.
let money = 20000;
let year = 0;
while (___) {
___;
if (year % 2 == 0) {
money = money * 1.2;
}
}
console.log("It will pass 50000 in " + year + " years");اضغط «تشغيل» لترى النتيجة. اطبع سنوات الألعاب الأولمبية من 2024 حتى 2060: السنة أولمبية إذا كان باقي قسمتها على 4 يساوي 0.
let year = 2024;
while (year <= 2060) {
if (___) {
console.log(year + " is an Olympic year");
}
year += 1;
}اضغط «تشغيل» لترى النتيجة. زِد num بمقدار 7 ما دام أقل من 100، وعدّ الدورات في count، ثم اطبع count.
let num = 0;
let count = 0;
while (___) {
num += 7;
count++;
}
console.log(count);اضغط «تشغيل» لترى النتيجة. في بداية الحلقة أضف: إذا كانت a == 5 فزِد a بمقدار 1 ثم تخطَّ بقية الدورة بـ continue. يجب أن يُطبع a: 11 times ثم b: 10 times.
let a = 0;
let b = 0;
while (a <= 10) {
b = b + 1;
a = a + 1;
}
console.log("a: " + a + " times");
console.log("b: " + b + " times");اضغط «تشغيل» لترى النتيجة. الطلاب من 1 إلى 8 يقفون لصورة الفصل، لكن الطالبين 3 و6 غائبان. استخدم while وcontinue لطباعة Student 1 ثم Student 2 ... للحاضرين فقط.
تلميح
زِد student في أول الحلقة، فلا تنسَ الزيادة قبلcontinue.let student = 0;
اضغط «تشغيل» لترى النتيجة. تدّخر مريم 50 جنيهًا كل يوم، لكنها في كل يوم سابع (اليوم الذي باقي قسمته على 7 يساوي 0) تصرف 30 جنيهًا. كرر ما دام money أقل من 500، ثم اطبع Day 11 (رقم اليوم الذي وصلت فيه).
let money = 0; let day = 0;
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
- يمكن كتابة if داخل while، فتُفحص في كل دورة.
- «حتى تتجاوز X» تُكتب في while على صورة «ما دامت أقل من X».
continueتتخطّى بقية الدورة الحالية وتبدأ الدورة التالية؛ وغيّر متغير الشرط قبلها.