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

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

الدرس الثامن






Leave a Reply