🚀 التحكم في الحلقات التكرارية: شرح break و continue في PHP

في الدروس السابقة، تعلمت كيف تقوم بعمل حلقات تكرارية (Loops) لتنفيذ كود معين عدة مرات. لكن، ماذا لو أردت إيقاف هذه الحلقة فجأة قبل أن تنتهي؟ أو ماذا لو أردت تخطي رقم معين داخل الحلقة والانتقال للرقم الذي يليه؟

هنا يأتي دور الأداتين السحريتين: break و continue. دعنا نشرحهما بالتفصيل وببساطة. 😊


🛑 أولاً: جملة break (إيقاف الحلقة فوراً)

تخيل أنك تبحث عن كتاب معين في رف يحتوي على 100 كتاب. بمجرد أن تجد الكتاب، هل ستستمر في البحث في بقية الرف؟ بالطبع لا! ستقوم بإيقاف عملية البحث فوراً. هذا بالضبط ما تفعله break.

وظيفة break: هي إيقاف الحلقة التكرارية (Loop) تماماً والخروج منها، حتى لو لم يصل العداد إلى النهاية المحددة.

💻 مثال عملي على break:

سنقوم بعمل حلقة تكرارية تطبع الأرقام من 1 إلى 10، ولكننا سنطلب من البرنامج التوقف فوراً عندما يصل للرقم 5.

<?php
// Loop prints numbers from 1 to 10
for ($i = 1; $i <= 10; $i++) {
    
    if ($i == 5) {
        break; // توقف عن العمل واخرج من الحلقة فوراً عند الوصول للرقم 5
    }
    
    echo "Number: " . $i . "<br>";
}

echo "Loop stopped!"; // هذا النص سيظهر بعد الخروج من الحلقة
?>

شرح ما حدث:

  1. بدأت الحلقة بالرقم 1، 2، 3، 4 (تم طباعتهم بشكل طبيعي).
  2. عندما وصلت قيمة $i إلى 5، تحقق الشرط if ($i == 5).
  3. تم تنفيذ أمر break الذي أخبر PHP: "توقف عن تكرار هذه الحلقة فوراً واخرج منها".
  4. النتيجة: لن يتم طباعة الأرقام من 5 إلى 10.

⏭️ ثانياً: جملة continue (تخطي الدورة الحالية)

أما continue فهي تعمل بطريقة مختلفة. هي لا تنهي الحلقة بالكامل، بل تقول للبرنامج: "اترك هذه الدورة الحالية فقط، وانتقل فوراً إلى الدورة التالية".

تخيل أنك تقوم بتنظيف مجموعة من الصحون، ولكنك وجدت صحناً مكسوراً؛ فقررت تركه (تخطيه) والانتقال لتنظيف الصحن الذي يليه. هذا هو مفهوم continue.

وظيفة continue: هي تخطي الكود المتبقي في الدورة الحالية، والقفز مباشرة إلى بداية الدورة التالية.

💻 مثال عملي على continue:

سنقوم بعمل حلقة تكرارية تطبع الأرقام من 1 إلى 5، ولكننا نريد تخطي الرقم 3 فقط.

<?php
// Loop prints numbers from 1 to 5
for ($i = 1; $i <= 5; $i++) {
    
    if ($i == 3) {
        continue; // تخطى الرقم 3 واذهب للدورة التالية فوراً
    }
    
    echo "Number: " . $i . "<br>";
}
?>

شرح ما حدث:

  1. طبع البرنامج الرقم 1 ثم 2.
  2. عندما وصلت قيمة $i إلى 3، تحقق الشرط if ($i == 3).
  3. تم تنفيذ أمر continue الذي أخبر PHP: "لا تكمل تنفيذ الكود الموجود بالأسفل (أمر الطباعة)، واصعد فوراً لبداية الحلقة لتبدأ بالرقم 4".
  4. النتيجة: ستظهر الأرقام (1, 2, 4, 5) والرقم 3 س يختفي تماماً.

⚖️ الفرق الجوهري بين break و continue

لكي لا تختلط عليك الأمور، تذكر هذا الجدول البسيط:

الأداة التأثير على الحلقة النتيجة النهائية
break 🛑 تنهي الحلقة بالكامل الخروج من Loop والذهاب للكود الذي يليها
continue ⏭️ تنهي الدورة الحالية فقط العودة لبداية Loop لبدء الدورة التالية

🎓 ملخص سريع

  • استخدم break عندما تريد "الهروب" من الحلقة نهائياً بمجرد تحقق شرط معين.
  • استخدم continue عندما تريد "تجاوز" عنصر واحد أو حالة معينة والاستمرار في بقية التكرارات.