جاري التحميل...

حلقة while

في for كانت البداية والشرط والتحديث مجتمعة في رأس واحد. أحياناً تعرف فقط قاعدة «تابع ما دام هذا صحيحاً» — والعدّاد يتغيّر وسط العمل نفسه. while يفحص شرطاً واحداً أولاً، ينفّذ الجسم، ثم يفحص من جديد. نفس فكرة التكرار؛ شكل مختلف على الصفحة.

كيف تتقدّم حلقة while؟

ما دام الشرط داخل الأقواس صحيحاً تُعاد كتلة { }. لا يوجد في الرأس مكان منفصل للبداية أو التحديث. تجهّز المتغيرات قبل الحلقة وتغيّرها داخل الجسم حتى يصبح الشرط خاطئاً. حينها تتوقف الحلقة ويكمل البرنامج من السطر التالي.

while و for و do...while بنظرة واحدة

📊 أشكال الحلقات اليومية

الشكل متى يناسب فحص الشرط
while تابع ما دامت قاعدة قائمة؛ التحديث داخل الجسم قبل كل جولة
for تعرف من البداية البداية والتوقف والخطوة قبل كل جولة (رأس بثلاثة أجزاء)
do...while يجب أن يُنفَّذ الجسم مرة واحدة على الأقل بعد كل جولة

أمثلة المبتدئ لـ while ما زالت غالباً بعدّاد صغير. الفرق في المكان: تكتب let i = 0 قبل الحلقة وi++ (أو تغييراً آخر) داخل الأقواس. إن لم تغيّر ما يقرأه الشرط فقد لا تنتهي الحلقة أبداً.

عدّ بسيط بـ while

javascript
let i = 0;
while (i < 5) {
console.log(i);
i++;
}

عُدّ بـ while

يبدأ i من 0 قبل الحلقة. كل جولة تطبعه ثم تضيف واحداً. ترى 0 إلى 4 — خمس جولات. القيمة 5 لا تُطبع لأن الشرط يفشل أولاً. بلا i++ داخل الجسم يبقى i على 0 إلى الأبد.

اقرأ جولة واحدة بهدوء: شرط → جسم (مع التحديث) → شرط من جديد. لذلك نسيان التحديث هو فخ الحلقة اللانهائية الكلاسيكي مع while.

سجّل خطوة واضحة

javascript
let n = 1;
while (n <= 3) {
console.log("step " + n);
n++;
}

ابدأ من واحد بتسمية أوضح

هنا العدّاد من 1 والشرط n <= 3؛ فترى step 1 ثم step 2 ثم step 3. البدء من صفر أو واحد اختيار تصميم — فقط اجعل الشرط يطابق اختيارك، كما مع for.

جمع بـ while

javascript
let total = 0;
let k = 1;
while (k <= 4) {
total = total + k;
k++;
}
console.log(total);

ابنِ المجموع جولة بعد جولة

يبدأ total من صفر. كل جولة تضيف k الحالي ثم تقدّم k. بعد 1+2+3+4 يصبح 10. النتيجة النامية خارج الحلقة؛ العدّاد الذي يحرّك الشرط بجانبها.

عدّ تنازلي بـ while

javascript
let left = 3;
while (left > 0) {
console.log("left=" + left);
left--;
}
console.log("done");

عُدّ تنازلياً حتى التوقف

ليست كل الحلقات تصعد فقط. هذه تطبع left=3 ثم left=2 ثم left=1 ثم done. إنقاص العدّاد تحديث صادق أيضاً — أي تغيير يقود نحو إنهاء الحلقة مناسب.

do...while مرة واحدة على الأقل

javascript
let x = 0;
do {
console.log("tick " + x);
x++;
} while (x < 1);
console.log("after=" + x);

do...while ينفّذ الجسم أولاً

do...while ينفّذ الجسم مرة، ثم يفحص الشرط. حتى لو كان الشرط خاطئاً من البداية لـ while عادي، الجولة الأولى تحدث. هنا ترى tick 0 ثم after=1. استخدمه حين تناسب القصة «جرّب مرة، ثم كرّر إن لزم».

اعرض نتيجة while على الصفحة

نفّذ عدّاً قصيراً بـ while، ابنِ رسالة، ثم اكتبها في الصفحة.

عدّ الصفحة بـ while

html
<!DOCTYPE html>
<html>
<head>
<title>While — page count</title>
</head>
<body>
<p id="out">…</p>
<script>
let msg = "";
let i = 1;
while (i <= 4) {
msg = msg + i + " ";
i++;
}
let box = document.getElementById("out");
box.textContent = "count=" + msg.trim();
</script>
</body>
</html>

تعرض الصفحة count=1 2 3 4. غيّر الحد الأعلى، حدّث الصفحة، واقرأ القائمة الجديدة. فضّل for حين تكون الخطة الثلاثية واضحة مسبقاً؛ وفضّل while حين قاعدة التوقف شرط واحد أوضح والتحديث داخل الجسم. الدرس التالي يمشي على القيم والمفاتيح بـ for...of وfor...in.

جرّبها بنفسك

  1. اكتب while يسجّل 0…4 مع i < 5 وi++ داخل الجسم.
  2. غيّره ليسجّل 1…5 مع i <= 5.
  3. اجمع 1…5 في total بـ while وسجّل النتيجة.
  4. عُدّ تنازلياً من 5 إلى 1 ثم سجّل done.
  5. اكتب do...while يطبع سطراً حتى لو بدأ الشرط خاطئاً.
  6. في عرض HTML غيّر الحد الأعلى فقط، حدّث الصفحة، واقرأ count=.

أخطاء شائعة

  • نسيان تحديث الجسم فيبقى الشرط صحيحاً دائماً (حلقة لانهائية)
  • خطأ بواحد: i < 5 بدل i <= 5 (أو العكس)
  • اختيار do...while حين تريد حقاً إمكانية صفر جولات
  • وضع التحديث في مكان خاطئ أو تغيير متغيّر غير الذي يقرأه الشرط
  • while طويل حين يكون رأس for أوضح للقراءة

خلاصة

  • while يكرّر الكتلة ما دام الشرط صحيحاً
  • جهّز المتغيرات قبل الحلقة؛ حدّثها داخل الجسم
  • ممتازة للعدّ والجمع والعدّ التنازلي
  • do...while ينفّذ الجسم مرة على الأقل ثم يفحص
  • فضّل for حين البداية/التوقف/الخطوة واضحة؛ وwhile لقاعدة جارية واحدة
  • التالي: for...of و for...in — المشي على القيم والمفاتيح

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
8
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى