تعلم لغة php -الدرس السابع While loops

0

While loops عبارة عن كتل بسيطة يتم تنفيذها بشكل متكرر حتى لا يتم استيفاء شرط حلقة while.

فيما يلي مثال على حلقة يتم تنفيذها ما مجموعه 10 مرات:

$counter = 0;

while ($counter < 10) {
    $counter += 1;
    echo "Executing - counter is $counter.\n";
}

الفرق الرئيسي بين for loops و أثناء while loops هو أنه يتم استخدام for loops للتكرار عبر مصفوفة أو كائن ، وستقوم حلقة while بتنفيذ عدد غير معروف من المرات ، اعتمادًا على الظروف المتغيرة (على سبيل المثال ، حتى يدخل المستخدم الإدخال الصحيح).

عبارات التدفق

يمكن التحكم في الحلقات باستخدام عبارات break وcontinue ، والتي تكون مفيدة في حين أن الحلقات كثيرا. تقوم عبارة break بإنهاء حلقة for فورًا في منتصف الكتلة ، بينما تعود عبارة continue إلى أعلى حلقة while ، وإعادة التحقق مما إذا تم استيفاء شرط الحلقة أيضًا.

The continue statement

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

$counter = 0;

while ($counter < 10) {
    $counter += 1;

    if ($counter % 2 == 0) {
        echo "Skipping number $counter because it is even.\n";
        continue;
    }

    echo "Executing - counter is $counter.\n";
}

The break statement

لنفترض أننا نريد إضافة اختبار آخر للتحقق مما إذا كان متغير العداد ليس أكبر من 8. إذا كان كذلك ، فإننا نرغب في إيقاف الحلقة. سيؤدي ذلك إلى عدم طباعة الرقم 9 في هذا المثال.

$counter = 0;

while ($counter < 10) {
    $counter += 1;

    if ($counter > 8) {
        echo "counter is larger than 8, stopping the loop.\n";
        break;
    }

    if ($counter % 2 == 0) {
        echo "Skipping number $counter because it is even.\n";
        continue;
    }

    echo "Executing - counter is $counter.\n";

تمرين

استخدم حلقة while لطباعة جميع الأرقام الفردية في المصفوفة. استخدم عبارة continue لتخطي الحلقات وتجنب طباعة الأرقام الزوجية.

تذكر – ستحتاج إلى استخدام \n تسلسل الأحرف في نهاية عبارة echo للمتابعة إلى السطر التالي.

نصيحة: لاختبار ما إذا كان الرقم زوجيًا ، تحقق مما إذا كانت معامل الرقم 2 يساوي الصفر ($ number٪ 2 == 0).

<?php
$numbers = [56, 65, 26, 86, 66, 34, 78, 74, 67, 18, 34, 73, 45, 67, 75, 10, 60, 80, 74, 16, 86, 34, 12, 23, 42, 72, 36, 3, 73, 9, 92, 81, 94, 54, 97, 74, 45, 55, 70, 94, 96, 81, 86, 86, 84, 4, 32, 8, 96, 86, 87, 18, 84, 87, 59, 48, 32, 90, 17, 22, 82, 79, 66, 28, 17, 14, 80, 83, 66, 36, 21, 89, 68, 2, 51, 65, 20, 87, 48, 5, 1, 16, 60, 53, 84, 90, 16, 2, 37, 73, 57, 70, 57, 69, 68, 1, 24, 40, 72, 97];

// TODO: طباعة الأرقام الفردية فقط

?>

الحل

<?php
$numbers = [56, 65, 26, 86, 66, 34, 78, 74, 67, 18, 34, 73, 45, 67, 75, 10, 60, 80, 74, 16, 86, 34, 12, 23, 42, 72, 36, 3, 73, 9, 92, 81, 94, 54, 97, 74, 45, 55, 70, 94, 96, 81, 86, 86, 84, 4, 32, 8, 96, 86, 87, 18, 84, 87, 59, 48, 32, 90, 17, 22, 82, 79, 66, 28, 17, 14, 80, 83, 66, 36, 21, 89, 68, 2, 51, 65, 20, 87, 48, 5, 1, 16, 60, 53, 84, 90, 16, 2, 37, 73, 57, 70, 57, 69, 68, 1, 24, 40, 72, 97];

// TODO: طباعة الأرقام الفردية فقط
$index = 0;
while( $index < count( $numbers ) )
{
    $number = $numbers[ $index ];
    ++$index;

    if( $number % 2 == 0 )
        continue;

    echo "$number\n";
}
?>

سنحصل على النتيجة التالية عند التشغيل

65
67
73
45
67
75
23
3
73
9
81
97
45
55
81
87
87
59
17
79
17
83
21
89
51
65
87
5
1
53
37
73
57
57
69
1
97

الدرس الثامن

اترك رد

لن يتم نشر عنوان بريدك الإلكتروني.