🔄 احتراف حلقة do while في PHP: نفذ أولاً ثم تحقق!

بعد أن تعرفنا على أنواع مختلفة من حلقات التكرار، سنقوم اليوم بشرح نوع مميز جداً وهو حلقة do while. 🚀

في الدروس السابقة، تعلمنا أن حلقات التكرار (مثل while) تتحقق من الشرط قبل تنفيذ الكود. لكن ماذا لو أردت تنفيذ الكود مرة واحدة على الأقل مهما كانت الظروف، ثم نبدأ بالتحقق من الشرط؟ هنا يأتي دور do while.


❓ ما هي حلقة do while؟

حلقة do while هي حلقة تكرار تقوم بتنفيذ مجموعة من الأوامر البرمجية أولاً، ثم تقوم بفحص الشرط في النهاية.

الفرق الجوهري:

  • في حلقة while العادية: "هل الشرط صحيح؟ ✅ إذن سأنفذ الكود".
  • في حلقة do while: "سأنفذ الكود أولاً 🛠️، ثم أسأل: هل الشرط صحيح لأكرر العملية مرة أخرى؟".

هذا يعني أن الكود الموجود داخل do while سيتم تنفيذه مرة واحدة على الأقل حتى لو كان الشرط خاطئاً من البداية.


🛠️ الصيغة العامة لكتابة do while (Syntax)

لكتابة هذه الحلقة، نستخدم الكلمتين المفتاحيتين do و while بالشكل التالي:

do {
    // الكود الذي نريد تنفيذه
} while (condition); 

ملاحظات هامة جداً:

  1. نفتح القوس { بعد كلمة do.
  2. نضع الأوامر البرمجية داخل القوسين.
  3. نغلق القوس } ثم نكتب كلمة while.
  4. نضع الشرط بين قوسين (condition).
  5. تنبيه: يجب وضع فاصلة منقوطة ; في نهاية السطر بعد قوس الشرط في do while (عكس حلقة while العادية).

💡 مثال عملي بسيط (1)

لنفرض أننا نريد طباعة الأرقام من 1 إلى 5. سنقوم بتعريف متغير يبدأ من 1، ونطلب من البرنامج طباعته ثم زيادة قيمته، بشرط أن يكون الرقم أقل من أو يساوي 5.

<?php
$number = 1; // بداية العد من رقم 1

do {
    echo "The number is: $number <br>"; // طباعة الرقم الحالي
    $number++; // زيادة الرقم بمقدار 1 في كل دورة
} while ($number <= 5); // التحقق: هل الرقم لا يزال 5 أو أقل؟
?>

شرح ما حدث في الكود:

  1. بدأ البرنامج بتعريف $number = 1.
  2. دخل إلى قسم do وطبع "The number is: 1".
  3. قام بزيادة الرقم ليصبح 2.
  4. الآن وصل إلى while وسأل: هل 2 أصغر من أو تساوي 5؟ الإجابة نعم ✅، لذا عاد للبداية وكرر العملية.
  5. استمرت العملية حتى وصل الرقم إلى 6، عندها كانت الإجابة لا ❌، فتوقف البرنامج.

⚠️ ماذا يحدث لو كان الشرط خاطئاً من البداية؟

هذا هو الجزء الأكثر أهمية في هذا الدرس. لنرى ماذا يحدث إذا وضعنا شرطاً مستحيلاً من البداية.

<?php
$count = 10; // القيمة تبدأ من 10

do {
    echo "This will print once!"; // هذا الكود سيُنفذ مرة واحدة بالتأكيد
} while ($count < 5); // الشرط هنا خاطئ لأن 10 ليست أصغر من 5
?>

النتيجة: سيقوم البرنامج بطباعة "This will print once!" مرة واحدة فقط، ثم يرى أن الشرط خاطئ فيتوقف.

لو استخدمنا while العادية في هذا المثال، لما تم طباعة أي شيء على الإطلاق! وهذا هو السر في قوة do while.


📝 ملخص سريع

الميزة حلقة while حلقة do while
وقت فحص الشرط قبل التنفيذ (في البداية) بعد التنفيذ (في النهاية)
الحد الأدنى للتنفيذ قد لا تُنفذ أبداً (0 مرة) تُنفذ مرة واحدة على الأقل (1 مرة)
الفاصلة المنقوطة لا تنتهي بـ ; بعد الشرط يجب أن تنتهي بـ ; بعد الشرط

🎓 ماذا سنتعلم في الدرس القادم؟

الآن بعد أن أتقنا أنواع حلقات التكرار الأساسية (while و do while)، حان الوقت للانتقال إلى واحدة من أهم وأكثر الحلقات استخداماً في لغة PHP وهي حلقة for Loop. سنتعلم كيف نكرر الكود لعدد محدد من المرات بطريقة مختصرة وذكية جداً. نراك هناك! 👋