while

🔄 ما هي جمل التكرار while و do...while في PHP؟

هما حلقات تكرار مثل for، لكن الاختلاف في:

  • طريقة التكرار
  • وقت تنفيذ الشرط
✅ أولًا: جملة while
✳️ التعريف:

تنفذ الكود طالما أن الشرط صحيح
📌 تتحقق من الشرط أولًا قبل التكرار

✅ الشكل العام:
while (الشرط) {
    // كود يتم تكراره
}
PHP
✅ مثال 1: طباعة الأرقام من 1 إلى 5
$i = 1;

while ($i <= 5) {
    echo "العدد: $i<br>";
    $i++;
}
PHP
✅ الشرح:
  • يبدأ من 1.
  • يتأكد من أن $i <= 5 قبل كل تكرار.
  • يزيد $i في كل مرة.
✅ مثال 2: طباعة الأرقام الزوجية من 2 إلى 10
$i = 2;

while ($i <= 10) {
    echo "عدد زوجي: $i<br>";
    $i += 2;
}
PHP
المثال 3: إدخال كلمة سر صحيحة (محاكاة بسيطة)
$password = "";

while ($password != "1234") {
    // في الحقيقة يتم استخدام input من المستخدم هنا
    $password = "1234"; // فقط للمثال
    echo "محاولة تسجيل الدخول...<br>";
}

echo "تم تسجيل الدخول بنجاح!";
PHP

🔸 الشرح:

  • يتكرر الكود حتى يُكتب الباسورد الصحيح
  • بمجرد التطابق، تخرج من الحلقة

⚠️ (في الواقع يتم أخذ قيمة من المستخدم، لكن هنا نُحاكي الفكرة)

⚠️ إذا لم تُغيّر المتغير داخل الحلقة:
$i = 1;

while ($i <= 5) {
    echo "لن تنتهي هذه الحلقة أبداً<br>";
    // نسيت $i++
}
PHP

🛑 النتيجة: تكرار لا نهائي

🟡 ملاحظات للمبتدئين:
الملاحظةالشرح
✅ يجب تحديث المتغير داخل الحلقةمثل: $i++
⚠️ إذا نسيت التحديث ⇒ حلقة لا نهائيةستعلق البرنامج
🟢 مناسبة عندما لا تعرف عدد التكرارات بدقةمثل انتظار إدخال صحيح من المستخدم
✅ ثانيًا: جملة do...while
✳️ التعريف:

تنفذ الكود على الأقل مرة واحدة، ثم تتحقق من الشرط
📌 التحقق من الشرط يتم بعد تنفيذ الكود

✅ الشكل العام:
do {
    // كود يتم تنفيذه أولًا
} while (الشرط);
PHP
✅ مثال 1: طباعة الأرقام من 1 إلى 5
$i = 1;

do {
    echo "العدد: $i<br>";
    $i++;
} while ($i <= 5);
PHP
✅ مثال 2: حتى لو الشرط خطأ، ينفذ الكود مرة
$i = 10;

do {
    echo "سيتم تنفيذ هذا مرة واحدة حتى لو الشرط خطأ<br>";
    $i++;
} while ($i <= 5);
PHP

🟢 النتيجة: تنفذ مرة واحدة فقط، ثم تتوقف

🔍 الفرق بين while و do…while
المقارنةwhiledo…while
التحقق من الشرطقبل تنفيذ الكودبعد تنفيذ الكود
عدد مرات التنفيذ الأدنىقد لا تُنفذ إطلاقًاتُنفذ مرة واحدة على الأقل
مثال مناسبطالما المستخدم لم يدخل “خروج”نفّذ التعليمات مرة ثم تحقق من الاستمرار
✅ مثال عملي للمقارنة:
$x = 10;

// while
while ($x < 5) {
    echo "لن تظهر هذه الرسالة (while)<br>";
}

// do...while
$x = 10;
do {
    echo "تظهر هذه مرة واحدة (do...while)<br>";
} while ($x < 5);
PHP
🎯 متى أستخدم while أو do…while؟
الحالةالأنسب
تريد التكرار طالما الشرط صحيحwhile
تريد تنفيذ الكود مرة على الأقلdo...while
التكرار يعتمد على إدخال المستخدمdo...while
التكرار ثابت ومحددfor
⚠️ محاذير هامة:
  1. نسيان تحديث المتغير داخل الحلقة
    • يؤدي إلى حلقة لا نهائية
  2. كتابة شرط خاطئ
    • مثل while (false) → لا ينفذ شيء
  3. نسيان الفاصلة المنقوطة في do…while
do {
   // كود
} while ($x < 5) // خطأ: نسيت ;
PHP

✅ الصحيح:

} while ($x < 5);
PHP
💡 نصائح :
  • ابدأ دائمًا باختبار الحلقات بقيم بسيطة (1 إلى 3 مثلاً)
  • راقب التغيير داخل الحلقة ($i++ أو $i--)
  • استخدم echo داخل الحلقة لرؤية سير التكرار
  • لا تستخدم do...while إلا إذا كنت بحاجة حقيقية لتنفيذ الكود مرة على الأقل
✅ تلخيص سريع
النوعيتحقق أولًاينفذ على الأقل مرةالأفضل إذا…
while✅ نعم❌ لاتريد تكرار بشرط واضح ومسبق
do...while❌ لا✅ نعمتريد تنفيذ الكود مرة ثم فحص شرط