JavaScript / التكرار

حلقة while

اختر بين let وconst، واستخدم !=، وكرّر أمرًا ما دام شرطٌ صحيحًا بحلقة while.

let أم const؟

بعض القيم تتغير أثناء البرنامج، مثل رصيدك من المال. وبعضها لا يتغير أبدًا، مثل عدد أيام الأسبوع. نعلن القيمة التي ستتغير بـ let، والقيمة الثابتة بـ const وتُسمّى ثابتًا.

JavaScript
const daysInWeek = 7;
let day = 30;
console.log("A week has " + daysInWeek + " days");
console.log("September has " + day + " days");
day = 31;
console.log("October has " + day + " days");
وحدة التحكم
A week has 7 days
September has 30 days
October has 31 days
لا يمكن إعطاء الثابت قيمة جديدة بعد إعلانه، وهذا يحميك من تغييره بالخطأ. ولا بد أن يأخذ قيمته في سطر الإعلان نفسه، فـ const num; خطأ أيضًا.
JavaScript
const num = 3;
num = 5;
console.log(num);
وحدة التحكم
TypeError: Assignment to constant variable.

عامل عدم المساواة !=

A != B تعني «A لا تساوي B». يكون الشرط صحيحًا عندما تختلف القيمتان:

JavaScript
const weather = "Cloudy";
if (weather != "Rainy") {
  console.log("Play soccer");
}
وحدة التحكم
Play soccer

حلقة while

حلقة for مناسبة عندما نعرف عدد مرات التكرار. لكن أحيانًا لا نعرفه: «اشترِ قصصًا مصوّرة ما دام معك مال يكفي». هنا نستخدم while (الشرط) { ... }: تُفحص الحلقة الشرط، فإن كان صحيحًا نفّذت ما بين القوسين ثم عادت تفحصه من جديد.

JavaScript
let money = 2000;
const comics = 425;
while (money > comics) {
  money = money - comics;
  console.log(money);
}
وحدة التحكم
1575
1150
725
300

ويمكن أن نعدّ مرات التكرار بمتغير يبدأ من 0. هنا ندّخر 15000 كل شهر حتى نصل إلى 85000. لاحظ أن money += 15000 اختصار لـ money = money + 15000:

JavaScript
let money = 30000;
let month = 0;
while (money < 85000) {
  month++;
  money += 15000;
}
console.log("Save for " + month + " months");
وحدة التحكم
Save for 4 months
الحلقةنستخدمها عندما
forنعرف عدد مرات التكرار
whileنكرر حتى يتغير شرط، ولا نعرف عدد المرات مسبقًا
لا بد أن يغيّر ما داخل الحلقة شيئًا في الشرط (مثل money). لو نسيت ذلك يبقى الشرط صحيحًا للأبد، وتتكرر الحلقة بلا نهاية.

تدريبات

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

اكتب let أو const في الفراغ. انتبه: قيمة day ستتغير إلى 31.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
___ day = 30;
console.log("September has " + day + " days");
day = 31;
console.log("October has " + day + " days");
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
2عدّل البرنامجتدريب المنهج

شغّل البرنامج وستظهر رسالة خطأ. صحّح طريقة الإعلان في السطر الأول ليطبع 5.

تلميحقيمة num تتغير، فهي ليست ثابتًا.
JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
const num;
num = 3;
num = 5;
console.log(num);
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
3أكمل الفراغتدريب المنهج

اكتب الشرط: إذا كانت myScore لا تساوي 100 يُطبع Aim for a perfect score!

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
const myScore = 90;
if (___) {
  console.log("Aim for a perfect score!");
}
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
4أكمل الفراغتدريب المنهج

أكمل الحلقة: اشترِ وجبة خفيفة وتطبع المال المتبقي ما دام money أكبر من snacks.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let money = 1000;
const snacks = 230;
___ (___) {
  money = money - snacks;
  console.log(money);
}
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
5أكمل الفراغتدريب المنهج

تدّخر 800 كل شهر. أكمل الحلقة لتكرر الادخار ما دام money أصغر من 4000، فيُطبع Save for 5 months.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let money = 600;
let month = 0;
___ (___) {
  month++;
  money += 800;
}
console.log("Save for " + month + " months");
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
6اكتب البرنامجتدريب إضافي

رواية فيها 230 صفحة، وتقرأ منها 40 صفحة كل يوم. استخدم while لتعرف عدد الأيام، ثم اطبع Finished in 6 days (والرقم محسوب من الحلقة).

تلميحكرر ما دام pages > 0: اطرح 40 وزد days بمقدار 1.
JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let pages = 230;
let days = 0;
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
7اكتب البرنامجتدريب إضافي

خبر في المدرسة يعرفه طالب واحد، ويتضاعف عدد من يعرفونه كل ساعة. ابدأ n من 1، واطبع n ثم ضاعفه ما دام n أصغر من 100. (يُطبع 1 و 2 و 4 حتى 64، كلٌّ في سطر)

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

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

  • let لقيمة ستتغير، وconst لقيمة ثابتة؛ وإعطاء الثابت قيمة جديدة يسبب خطأ.
  • A != B صحيحة عندما لا تساوي A قيمةَ B.
  • while (الشرط) { ... } تكرر ما دام الشرط صحيحًا، ونستخدمها حين لا نعرف عدد المرات.
  • غيّر داخل الحلقة شيئًا في الشرط، وإلا لن تتوقف.