לולאת While בשפת PHP

לאחר שלמדנו והבנו איך עובדת לולאת For בשפת PHP, הגיע הזמן ללמוד את המקבילה לה, והיא לולאת While בשפת PHP.

הלולאות הנ"ל דומות מאוד וניתן לעשות את אותם הדברים איתם, ההבדל הוא בעיקר לוגי. פירוש המילה while מאנגלית לעברית הוא "כל עוד", כלומר, כל עוד התנאי מתקיים, תבצע את הפקודות, אם התנאי לא מתקיים, אל תיכנס בכלל לולאה ותמשיך בקוד שכתוב אחרי הלולאה שהוא בכלל לא קשור אליה. בדרך כלל נשתמש בלולאת while כאשר לא נדע מתי תסתיים הלולאה.

תחביר לולאת While

התנאי הלוגי צריך להחזיר לנו True או False, במידה ומוחזר אמת, הקוד שכתוב בגוף הלולאה מתבצע, אחרת (הוחזר שקר) הקוד לא מתבצע. יש לשים לב שיש סוף לתנאי הלוגי, כלומר שיש תנאי עצירה מסויים שימנע מהלולאה להמשיך לרוץ עד אינסוף, לולאות שרצות עד אינסוף נקראות לולאות אינסופיות ועלולות לגרום לתקיעת הדפדפן.

דוגמא לולאה אינסופים מוכרת:

התנאי תמיד יתקיים, true תמיד ישאר true ולעולם לא ישתנה ל false, לכן הלולאה תמיד תרוץ ויודפס לנו הפלט עד שהדפדפן יתקע או משהו יקרוס, אנחנו לא רוצים להגיע לזה לכן נזהר בתנאים שנציב.

תחביר ה while, די דומה ל if, צריך בסך הכל למלא את התנאי, ובעזרת התנאי, הלולאה יודעת אם היא מתקיימת או לא. בלולאות בכלל, ובפרט בלולאת while, צריך להזהר לא להכנס לתוך לולאות אין סופיות, אשר יכולה לתקוע את הדפדפן שלכם.

בואו נדפיס את כל המספרים מ 1 עד 100 כמו שעשינו במאמר הקודם:

בואו נתרגם את זה לעברית, איתחלנו את המשתנה currentNumber ל 1, לאחר מכן כתבנו את לולאת while עם תנאי עצירה האומר "כל עוד currentNumber קטן או שווה ל 100", בהתחלה currentNumber שווה ל 1 לכן זה יתבצע ( 1 קטן מ 100), יודפס לנו הפלט ומיד לאחר מכן נגדיל את currentNumber באחד, וכעת currentNumber שווה ל 2, כך זה ימשיך עד ש currentNumber יגיע ל 100, ברגע ש currentNumber שווה ל 100 אנחנו נכנסים לולאה בפעם האחרונה כי currentNumber שווה ל 100, מדפיסים את מה שצריך להדפיס ומקדמים את currentNumber ב 1 וכעת currentNumber שווה ל 101, currentNumber כעת לא קטן או שווה ל 100 (כי הוא שווה ל 101), לכן הלולאה לא תתבצע ונצא ממנה. שימו לב שאם תנאי העצירה שלנו היה "כל עוד currentNumber גדול מ 0", זה היה לולאה אינסופית (למה ?, כי currentNumber תמיד יהיה גדול מ 0).

תחביר לולאת do while

 

לולאת do while דומה מאוד ללולאת while אך ההבדל הוא שקודם כל מתבצע הקוד (do) ואז מגיע התנאי של "כל עוד" (while) לעומת while רגיל שמתבצע התנאי ולאחר מכן הקוד. כמעט ולא תשתמשו בלולאה הזאת, תוכלו לקרוא עליה עוד בדוקמנטציה של PHP.

הלולאה הזאת תרוץ פעם אחת, קודם כל נאתחל את i ב 1, לאחר מכן יתבצע הקטע do שמדפיס את הערך של i ולאחר מכן כדי להמשיך ולבצע את הקטע do בפעם נוספת, התנאי שב while צריך להחזיר אמת, התנאי הוא האם i גדול מ 1, i לא גדול מאחד, הוא שווה לאחד לכן התנאי לא מתקיים ונצא מהלולאה.

כעת שהגעתם לסוף ואתם בטוחים שאתם יודעים את החומר (אם לא, כדאי לחזור שוב), תוכלו להמשיך וללמוד על לולאת Foreach בשפת PHP.