جملة Break
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 51 من 71.
أحياناً تحتاج إلى الخروج من الحلقة (loop) مبكراً، قبل أن تنتهي بشكل طبيعي. تسمح لك جملة break بالقيام بذلك تماماً—فهي توقف الحلقة فوراً وتستمر في تنفيذ الكود الذي يليها.
تخيل أنك تبحث في مصفوفة (array) عن قيمة معينة. بمجرد العثور عليها، لا داعي للتحقق من العناصر المتبقية. استخدام break يوفر تكرارات غير ضرورية.
<?php
$numbers = [3, 7, 2, 9, 5, 1];
foreach ($numbers as $num) {
if ($num === 9) {
echo "Found 9!\n";
break;
}
echo "Checking $num\n";
}
echo "Search complete";
?>ينتج عن هذا ما يلي:
Checking 3
Checking 7
Checking 2
Found 9!
Search completeلاحظ أن 5 و 1 لا يتم التحقق منهما أبداً. في اللحظة التي تواجه فيها الحلقة الرقم 9، يخرج break من الحلقة تماماً، وينتقل التنفيذ إلى "Search complete".
تعمل جملة break مع جميع أنواع الحلقات التكرارية—for و while و foreach. وهي مفيدة بشكل خاص عندما تبحث عن شيء ما أو عندما تعني حالة معينة أن الحلقة يجب أن تتوقف فوراً.
التحدي
سهلاقرأ سطرين من المدخلات:
- قائمة أرقام مفصولة بفاصلة (على سبيل المثال،
4,8,15,16,23,42) - الرقم المستهدف للبحث عنه
استخدم حلقة foreach للبحث في المصفوفة عن الرقم المستهدف. عندما تجده، اطبع Found [target] at index [index]! واستخدم break للخروج من الحلقة فوراً.
إذا اكتملت الحلقة دون العثور على الهدف، اطبع [target] not found.
تلميح: استخدم صيغة المفتاح والقيمة (key-value) في حلقة foreach لتتبع الفهرس (index).
المثال 1:
إذا كانت المدخلات هي 10,25,30,45,50 و 30، يجب أن تكون المخرجات:
Found 30 at index 2!المثال 2:
إذا كانت المدخلات هي 5,10,15,20,25 و 20، يجب أن تكون المخرجات:
Found 20 at index 3!المثال 3:
إذا كانت المدخلات هي 1,2,3,4,5 و 99، يجب أن تكون المخرجات:
99 not foundورقة مرجعية
تخرج عبارة break فوراً من الحلقة وتستمر في التنفيذ مع الكود الذي يلي الحلقة. وهي تعمل مع حلقات for و while و foreach.
مثال على استخدام break للخروج من الحلقة مبكراً:
<?php
$numbers = [3, 7, 2, 9, 5, 1];
foreach ($numbers as $num) {
if ($num === 9) {
echo "Found 9!\n";
break;
}
echo "Checking $num\n";
}
echo "Search complete";
?>المخرجات:
Checking 3
Checking 7
Checking 2
Found 9!
Search completeبمجرد تنفيذ break، تتوقف الحلقة فوراً ولا يتم معالجة العناصر المتبقية.
جرّب بنفسك
<?php
// قراءة المدخلات
$numbers = explode(',', trim(fgets(STDIN)));
$target = trim(fgets(STDIN));
// TODO: اكتب كودك أدناه
// استخدم حلقة foreach مع صيغة المفتاح والقيمة (key-value) للبحث عن الهدف
// عند العثور عليه، اطبع "Found [target] at index [index]!" ثم قم بإنهاء الحلقة (break)
// إذا لم يتم العثور عليه بعد انتهاء الحلقة، اطبع "[target] not found"
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات8الحلقات التكرارية
حلقة Forحلقة Whileحلقة Foreachالتكرار باستخدام المفاتيح والقيمجملة Breakجملة Continueمراجعة - التكرار عبر البيانات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص