🔄 ما هي جمل التكرار 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
المقارنة | while | do…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 |
⚠️ محاذير هامة:
- ❌ نسيان تحديث المتغير داخل الحلقة
- يؤدي إلى حلقة لا نهائية
- ❌ كتابة شرط خاطئ
- مثل
while (false)
→ لا ينفذ شيء
- مثل
- ❌ نسيان الفاصلة المنقوطة في do…while
do {
// كود
} while ($x < 5) // خطأ: نسيت ;
PHP✅ الصحيح:
} while ($x < 5);
PHP💡 نصائح :
- ابدأ دائمًا باختبار الحلقات بقيم بسيطة (1 إلى 3 مثلاً)
- راقب التغيير داخل الحلقة (
$i++
أو$i--
) - استخدم
echo
داخل الحلقة لرؤية سير التكرار - لا تستخدم
do...while
إلا إذا كنت بحاجة حقيقية لتنفيذ الكود مرة على الأقل
✅ تلخيص سريع
النوع | يتحقق أولًا | ينفذ على الأقل مرة | الأفضل إذا… |
---|---|---|---|
while | ✅ نعم | ❌ لا | تريد تكرار بشرط واضح ومسبق |
do...while | ❌ لا | ✅ نعم | تريد تنفيذ الكود مرة ثم فحص شرط |