אתחול: האתחול מתבצע פעם אחת בלבד כשמתחילה הלולאה עוד לפני בדיקת התנאי לביצוע האיטרציה. [ניתן לכתוב מספר פקודות באתחול המופרדות ע"י פסיק.]
*/
; expr
/*
תנאי: ביטוי בוליאני שנבדק לפני כל ביצוע של איטרציה. כאשר הוא נותן אמת, מבצעים איטרציה נוספת. כאשר הוא נותן שקר, מפסיקים את הלולאה.
*/
; promotion
/*
קידום: לאחר כל של איטרציה, אנו מקדמים ערכים לאיטרציה הבאה. לאחר הקידום, אנו חוזרים לבדוק שוב את תנאי הלולאה (expr). [ניתן לכתוב מספר פקודות בקידום המופרדות ע"י פסיק.]
*/
) { ... statements; ...
/*
בכל איטרציה אנו מבצעים את הפקודות statements.
*/
} ?>
לולאת for עובדת בצורה הבאה:
כשאנו מגיעים לראשונה ללולאה אנו מבצעים את initial פעם אחת בלבד וללא בדיקת תנאי מקדים. לאחר מכן אנו בודקים את הביטוי expr לפני כל איטרציה, ומבצעים את האיטרציה כאשר ערכו הוא אמת, כשבסוף כל איטרציה אנו מבצעים את promotion, ואח"כ חוזרים לבדוק את התנאי שוב לפני כל איטרציה נוספת. כאשר הביטוי הוא שקר הלולאה מפסיקה.
נביא דוגמא שמדפיסה את המספרים מ-1 ל-10:
<?php for ($i=1 ; $i<=10 ; $i++)
/*
עבור הפרמטרים הבאים בצע את הלולאה: אתחול: מתחילים את הלולאה עם הערך $i=1. תנאי: אם $i קטן-שווה ל-10, בצע את האיטרציה. אחרת, הפסק את הלולאה. קידום: לאחר כל איטרציה קדם את $i ב-1.
הקידום של הלולאה הוא לא בהכרח קידום ממשי של הערכים בלולאה. הוא נקרא קידום משום שע"י שינוי הערכים אנו מקדמים את הלולאה צעד נוסף קדימה. ואומנם, ניתן לכתוב בקידום כל פקודה שהיא שמשנה את הערכים לאיטרציה הבאה (אפילו קריאה לפונקציה). יתרה מזאת, ניתן לשלב את כל הקוד של האיטרציה בחלק של הקידום (והבלוק של האיטרציה יהיה ריק), אך רצוי לכתוב רק פקודות שמקדמות את הלולאה כדי שיהיה קל יותר להבין את פעולת הלולאה.
ניתן לכתוב את הלולאה גם בעזרת for: ו-endfor. ניתן לכתוב בחלק של הקידום והאתחול מספר פקודות המופרדות ע"י פסיק. בחלק של התנאי יש לדאוג שיתקבל ביטוי בוליאני.
תגובות בנושא
איך מוסיפים שני תנאים בלולאת for?
01-11-02 20:01 אסף אגמי
#577
אני רוצה לשים שני תנאים בלולאת for שרק מתי ששניהם נכונים הלולאה תרוץ. אם רק אחד, הלולאה תיפסק.
איך עושים את זה?
תנאי "וגם"
01-11-02 21:00 אלי חן (מנהל)
#579
בין 2 התנאים תוסיף את האופרטור "וגם" שהוא:
&&
עזרה בנושא זה!
02-11-02 19:02 Almog
#618
אתה רשמת במדריך את הדבר הבא:
ניתן לכתוב את הלולאה גם בעזרת for: ו-endfor. ניתן לכתוב בחלק של הקידום והאתחול מספר פקודות המופרדות ע"י פסיק. בחלק של התנאי יש לדאוג שיתקבל ביטוי בוליאני.
תוכל לתת דוגמא? או את התבנית? וד"א תוכל לתת עוד דוגמאות לשימוש בלולאה זאת חוץ מספירת מספרים (מה שאתה עושה בכל הלולאות!) תודה רבה מראש!!!
בברכה Almog.
תחביר משני
02-11-02 22:00 אלי חן (מנהל)
#625
לכל מבני הבקרה ב-PHP יש גם תחביר בנוסף לתחביר הרגיל, אך הוא פחות נפוץ ולטעמי גם פחות נוח. אתן כאן דוגמא לתחביר המשני:
FOR ($i=1; $i<=10; $i++):
FOR ($j=$i; $j>0; $j--):
echo "*";
ENDFOR;
echo "<br>\n";
ENDFOR;