JavaScript / التكرار

حلقة while (2): الشرط داخل الحلقة و continue

اكتب جملة if داخل while، وتخطَّ بقية التكرار الحالي بـ continue. منهج البكالوريا

تذكير: حلقة while تكرر ما دام الشرط صحيحًا. نمشي لفّات طول كل منها 6 كم ونطبع المسافة الكلية بعد كل لفّة، حتى تتجاوز 30 كم:

JavaScript
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
«حتى تتجاوز 30» هي نفسها «ما دامت أقل من 30»، لذلك نكتب الشرط distance < 30. الحلقة تكتب شرط الاستمرار، لا شرط التوقف.

if داخل while

وديعة في البنك قيمتها 10000 تُضرب في 1.2 كل سنتين. بعد كم سنة تتجاوز 50000؟ نزيد السنة في كل دورة، لكن نضرب المال فقط في السنوات الزوجية. والسنة زوجية إذا كان باقي قسمتها على 2 صفرًا: year % 2 == 0.

JavaScript
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
جملة if داخل الحلقة تُفحص في كل دورة، لكن ما بداخلها لا يُنفَّذ إلا عندما يتحقق شرطها.

continue

كأس العالم تُقام كل 4 سنوات بدءًا من 2026. لنفترض أن بطولة 2050 أُلغيت ولا نريد عدّها. الكلمة continue تتخطّى بقية الأوامر في الدورة الحالية وتعود مباشرة إلى فحص الشرط لتبدأ الدورة التالية.

JavaScript
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 لا توقف الحلقة؛ هي تتخطّى دورة واحدة فقط.

تدريبات

1أكمل الفراغتدريب المنهج

أكمل الحلقة: ما دامت distance أقل من 100 أضف 6 إليها، ثم اطبع المسافة الكلية: Walked a total of 6km ثم Walked a total of 12km وهكذا حتى Walked a total of 102km.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let distance = 0;
___ (___) {
  ___;
  console.log("Walked a total of " + distance + "km");
}
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
2أكمل الفراغتدريب المنهج

الوديعة تبدأ من 20000 وتُضرب في 1.2 كل سنتين. أكمل: كرر ما دام money أقل من 50000، وزد year بمقدار 1 في كل دورة.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let money = 20000;
let year = 0;
while (___) {
  ___;
  if (year % 2 == 0) {
    money = money * 1.2;
  }
}
console.log("It will pass 50000 in " + year + " years");
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
3أكمل الفراغتدريب المنهج

اطبع سنوات الألعاب الأولمبية من 2024 حتى 2060: السنة أولمبية إذا كان باقي قسمتها على 4 يساوي 0.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let year = 2024;
while (year <= 2060) {
  if (___) {
    console.log(year + " is an Olympic year");
  }
  year += 1;
}
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
4أكمل الفراغتدريب المنهج

زِد num بمقدار 7 ما دام أقل من 100، وعدّ الدورات في count، ثم اطبع count.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let num = 0;
let count = 0;
while (___) {
  num += 7;
  count++;
}
console.log(count);
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
5عدّل البرنامجتدريب المنهج

في بداية الحلقة أضف: إذا كانت a == 5 فزِد a بمقدار 1 ثم تخطَّ بقية الدورة بـ continue. يجب أن يُطبع a: 11 times ثم b: 10 times.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
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");
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
6اكتب البرنامجتدريب إضافي

الطلاب من 1 إلى 8 يقفون لصورة الفصل، لكن الطالبين 3 و6 غائبان. استخدم while وcontinue لطباعة Student 1 ثم Student 2 ... للحاضرين فقط.

تلميحزِد student في أول الحلقة، فلا تنسَ الزيادة قبل continue.
JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let student = 0;
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
7اكتب البرنامجتدريب إضافي

تدّخر مريم 50 جنيهًا كل يوم، لكنها في كل يوم سابع (اليوم الذي باقي قسمته على 7 يساوي 0) تصرف 30 جنيهًا. كرر ما دام money أقل من 500، ثم اطبع Day 11 (رقم اليوم الذي وصلت فيه).

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let money = 0;
let day = 0;
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.

النقاط الرئيسية

  • يمكن كتابة if داخل while، فتُفحص في كل دورة.
  • «حتى تتجاوز X» تُكتب في while على صورة «ما دامت أقل من X».
  • continue تتخطّى بقية الدورة الحالية وتبدأ الدورة التالية؛ وغيّر متغير الشرط قبلها.