Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

جملة Continue

جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 52 من 71.

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

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

<?php
for ($i = 1; $i <= 5; $i++) {
    if ($i === 3) {
        continue;
    }
    echo $i . "\n";
}
?>

هذا ينتج:

1
2
4
5

لاحظ أن الرقم 3 مفقود. عندما يساوي $i الرقم 3، فإن جملة continue تتخطى echo وتنتقل مباشرة إلى التكرار التالي حيث يصبح $i يساوي 4.

حالة استخدام شائعة هي تصفية القيم غير المرغوب فيها أثناء معالجة مصفوفة:

<?php
$numbers = [10, -5, 8, -3, 12];

foreach ($numbers as $num) {
    if ($num < 0) {
        continue;
    }
    echo $num . "\n";
}
?>

يقوم هذا بطباعة الأرقام الموجبة فقط: 10، و8، و12. يتم تخطي القيم السالبة، لكن الحلقة تستمر في العمل عبر جميع العناصر.

الفرق الرئيسي: break يوقف الحلقة تماماً، بينما continue يتخطى فقط إلى التكرار التالي.

challenge icon

التحدي

سهل

اقرأ سطرين من المدخلات:

  1. قائمة من الأعداد الصحيحة مفصولة بفاصلة (على سبيل المثال، 3,7,12,5,8,20,15)
  2. رقم القاسم (divisor)

استخدم حلقة foreach للتكرار عبر المصفوفة. استخدم continue لتخطي أي أرقام تقبل القسمة على القاسم المعطى. اطبع جميع الأرقام الأخرى، كل منها في سطر منفصل.

المثال 1:

إذا كانت المدخلات هي 1,2,3,4,5,6,7,8,9,10 و 3، فيجب أن تكون المخرجات:

1
2
4
5
7
8
10

(تم تخطي الأرقام 3 و 6 و 9 لأنها تقبل القسمة على 3)

المثال 2:

إذا كانت المدخلات هي 10,15,20,25,30 و 5، فيجب أن تكون المخرجات:

(جميع الأرقام تقبل القسمة على 5، لذا لن يتم طباعة أي شيء)

المثال 3:

إذا كانت المدخلات هي 7,14,21,10,5 و 7، فيجب أن تكون المخرجات:

10
5

ورقة مرجعية

تقوم جملة continue بتخطي التكرار الحالي للحلقة والانتقال إلى التكرار التالي، دون الخروج من الحلقة تماماً.

مثال أساسي مع حلقة for:

<?php
for ($i = 1; $i <= 5; $i++) {
    if ($i === 3) {
        continue;
    }
    echo $i . "\n";
}
?>

ينتج عن هذا 1، 2، 4، 5 (مع تخطي 3).

استخدام continue مع foreach لتصفية قيم المصفوفة:

<?php
$numbers = [10, -5, 8, -3, 12];

foreach ($numbers as $num) {
    if ($num < 0) {
        continue;
    }
    echo $num . "\n";
}
?>

يقوم هذا بطباعة الأرقام الموجبة فقط (10، 8، 12)، مع تخطي القيم السالبة.

الفرق الرئيسي: تخرج break من الحلقة تماماً، بينما تقوم continue فقط بالتخطي إلى التكرار التالي.

جرّب بنفسك

<?php
// قراءة المدخلات
$input = trim(fgets(STDIN));
$divisor = intval(trim(fgets(STDIN)));

// تحويل السلسلة النصية المفصولة بفاصلة إلى مصفوفة من الأعداد الصحيحة
$numbers = array_map('intval', explode(',', $input));

// TODO: اكتب كودك أدناه
// استخدم حلقة foreach للمرور عبر $numbers
// استخدم continue لتخطي الأعداد التي تقبل القسمة على $divisor
// اطبع جميع الأعداد الأخرى، كل واحد في سطر منفصل

?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals