Warning: file_put_contents(): Only -1 of 58 bytes written, possibly out of free disk space in /var/www/html/index.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/index.php:3) in /var/www/html/cache.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/index.php:3) in /var/www/html/cache.php on line 24

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/index.php:3) in /var/www/html/cache.php on line 25
while for מבני-בקרה PHP Manual do..while לולאות זהות במידה רבה ללולאות , למעט בדיקת הביטוי בסוף כל איטרציה במקום ביצוע הבדי...
Forum und email

do..while

לולאות do..while זהות במידה רבה ללולאות while, למעט בדיקת הביטוי בסוף כל איטרציה במקום ביצוע הבדיקה בהתחלה. ההבדל העיקרי בהתנהגות של לולאות אלו הוא שבלולאת do..while, קוד הלולאה ירוץ לפחות פעם אחת (כי התנאי נבדק בסוף הריצה) בעוד שבלולאת while רגילה (שבה התנאי נבדק בתחילת הלולאה), יתכן מצב בו הקוד לא יורץ בכלל. (אם ערכו ההתחלתי של הביטוי שווה ל-FALSE, הלולאה תיפסק מיד.)

ללולאות do..while יש צורת תחביר אחת בלבד:

$i = 0;
do {
   print $i;
} while ($i>0);

לולאה זו תורץ פעם אחת בדיוק, מאחר ומייד אחרי האיטרציה הראשונה, ערכו של הביטוי שווה ל-FALSE (ערכו של $i אינו גדול מ-0) וריצת הלולאה תפסק.

תכנתי C מתקדמים מכירים את השימושים השונים בלולאת do..while לצרכי עצירת הרצה באמצע בלוקים של קוד על-ידי שימוש בלולאת do..while ושימוש ב פקודתbreak. הקוד הבא מדגים זאת:

do {
    if ($i < 5) {
        print "i is not big enough";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    print "i is ok";

     ...process i...

} while(0);

אל דאגה אם נושא זה נראה מסובך ולא מובן. ניתן לכתוב סקריפטים חזקים גם ללא שימוש בתכונה זו.