بسم الله الرحمن الرحيم




تحدثنا في الدرس السابق عن ضرورة جمل الدوران و استخداماتها في برامجنا كما درسنا نوعين من هذه الجمل و هي جمل for و جملة while للدوران و اخذنا بعض الأمثلة عليهم و لرؤية الدروس السابقة اتبع الفهرس التالي :




اما في درسنا اليوم فسوف نكمل الحديث عن انواع جمل الدوران و سوف نتحدث عن جملة do - while و هي جمل دوران تشبه التي درسناها في الدرس السابق من حيث الوضيفة و لكنها تختلف من ناحية طريقة الكتابة و البرمجة و ايضا سنكتب عدة برامج و تطبيقات بسطة على الدوران و لنبدأ على بركة الله

3 - جملة الدوران do - while : و نستطيع التعبير عنها في لغتنا العربية كما يلي (نفذ الأمر .... طالما الشرط ....) و الصيغة العامة لها كالتالي :



و مثال عليها كالتالي :

كود PHP:
<?
    $i 
1;
    do
    {
        echo 
"loop : "$i ."<br/>";
        
$i++;
    }
    while( 
$i <= 100 );
?>


و هنا في هذا المثال قمنا في البداية بتعريف متغير اسمه i و هو عداد الدوران و اعطيناه القيمة 1 اي انه سيبدأ العد من عند الرقم 1
ثم كتبنا كلمة do و معناها افعل و هكذا سيدخل التنفيذ داخل الأقواس {} و يطبع العبارة و قيمة العداد
ثم يزيد قيمة العداد بمقدار 1 ليصبح 2
قم يصل التنفيذ الى جملة while فنجد بداخلها الشرط الذي يسأل هل قيمة i اقل او تساوي 100
و الإجابة هي نعم لأن قيمة i هي 2 حاليا و هي اقل من 100
اذا سيعيد التنفيذ مرة اخرى من عند جملة do و هكذا الى ان تصبح قيمة i تساوي 101 و يصبح شرط while غير صالحا

هنا في هذا المثال قمنا بعمل دوران 100 مرة و تستطيع التحكم بالدوران كما تشاء

و لرؤية النتيجة من هنا :
http://www.al79n-php.info/less12/do-while.php

لكن لو سأل احدكم ما الفرق بين جملة while التي درسناها في الدرس السابق و جملة do-while التي ندرسها في هذا الدرس ماذا ستكون الإجابة برأيكم ؟؟

الإجابة بسيطة يا اصدقائي

جملة while في الدرس السابق يتم فحص الشرط فيها قبل الدخول للدوران فإذا كان الشرط غير صحيح فإنه لن يدخل على الدوران
اما جملة do-while في هذا الدرس فإنه يتم تنفيذ اول دورة داخل الدوران ثم يتم فحص الشرط في جملة while

اي ان جملة do-while يتم تنفيذها مرة واحدة على الأقل اذا كان الشرط غير متحقق
اما جملة while فإذا كان الشرط غير متحقق فإنه لن يدخل الى الدوران


امثلة و تطبيقات :

1 - المثال التالي يقوم بفحص الأرقام من 1 الى 500 و يقوم بطباعة الرقم و بجانبة كلمة is odd اذا كان فردي و ايضا طباعة الرقم و كلمة is even اذا كان زوجي :

كود PHP:
<?
    $i 
1;
    do
    {
        if(
$i%== 0)
        {
            echo 
$i." is even<br/>";
            
        }
        else
        {
            echo 
$i." is odd<br/>";
        }
        
$i++;
    }
    while( 
$i <= 500 );
?>


ولمشاهدة النتيجة من هنا :
http://www.al79n-php.info/less12/odd-even.php

2 - المثال التالي يقوم برسم الشكل الذي في الصورة التالية بإستخدام جلمة while للدوران :


الكود :
كود PHP:
<?
    $line 
'*';
    
$i 1;
    while( 
$i <= 20 )
    {
        echo 
$line;
        
$line $line.'*';
        echo 
"<br/>";
        
$i++;
    }
?>


ولمشاهدة النتيجة مباشرة من هنا :
http://www.al79n-php.info/less12/rect.php

و التطبيقات العملية كثيرة جدا لا تعد ولا تحصى لذلك اترك لكم المحاولة فيها و الإستفادة من هذه الخواص البرمجية

و بهذا نكون قد انهينا درس اليوم و الى اللقاء في الدرس القادم