לולאת for ולולאת while
כשנרצה להריץ קוד מספר מסוים של פעמים נעשה זאת בתוך לולאה. שני הסוגים העיקריים של לולאות הם לולאות for ולולאות while. כדי שהלולאות יפעלו צריך להגדיר להן טווח ומונה. הטווח אומר מאיזה מספר להתחיל ועד לאיזה מספר לרוץ, והמונה מוסיף מספר בכל פעם שהלולאה רצה כדי לקדם אותה.
לולאת while
נגדיר את הערך שממנו צריכה הלולאה להתחיל לרוץ. לדוגמה:
$i = 0;
בנוסף, נגדיר את התנאי שבו הלולאה צריכה להפסיק לרוץ. נכניס את התנאי בין סוגריים עגולים. לדוגמה, (5 => i$), כשאת הקוד שהיא צריכה להוציא אל הפועל נמקם בין סוגריים מסולסלים. לדוגמה:
while($i <= 5) {
// הקוד
}
ועכשיו בעברית – תריץ את הקוד שבין הסוגריים המסולסלים עד שתגיע לתנאי של $i <=5, שזה בדיוק כמו להגיד תיעצר ב-5.
המונה הוא אותו חלק בקוד שמוסיף מספר קבוע ללולאה בכל פעם שהיא רצה, וכך הלולאה מתקדמת, עד שהיא מגיעה לתנאי.
המונה הפשוט ביותר הוא המונה הבא:
$i = $i + 1;
שמשמעותו תוסיף 1 למשתנה $i בכל פעם שהלולאה רצה. הקוד המלא ייראה כך:
$i = 0;
// מאיזה מספר להתחיל
while($i <= 5){
$i = $i + 1; // מונה
echo $i . " melon <br />";
}
והתוצאה:
1 melon
2 melon
3 melon
4 melon
5 melon
6 melon
כמובן שלא חייבים להוסיף 1 בכל פעם, אפשר לעשות את אותו דבר בדילוגים של 2. כך ייראה הקוד:
$i = 0;
while($i <= 5){
$i = $i + 2;
echo $i . " melon <br />";
}
וזו התוצאה:
2 melon
4 melon
6 melon
i = $i + 1$ או בקיצור $i++
כמעט תמיד משתמשים בדילוגים של 1. למעשה, כל כך מקובל שכותבים זאת בדרך קיצור.
לכן, במקום : $i = $i + 1
נהוג לכתוב: $i++.
נשכתב את הקוד בהתאם:
$i = 0;
while($i <= 5){
$i ++;
echo $i . " melon<br />";
}
והתוצאה:
1 melon
2 melon
3 melon
4 melon
5 melon
6 melon
לולאה שרצה ממקסימום למינימום
עד כה ראינו לולאות שרצות ממספר נמוך למספר גבוה, אבל לעתים נזדקק ללולאות שרצות ממספר גבוה לנמוך. לדוגמה, הלולאה הבאה שרצה מ-5 ל-0. שימו לב שהמונה מפחית 1 בכל פעם שהלולאה רצה.
$i = 5;
while($i > 0){
$i = $i -1;
echo $i . " melon<br />";
}
והתוצאה בהתאם:
5 melon
4 melon
3 melon
2 melon
1 melon
0 melon
וגם ל: $i = $i -1 יש קיצור מקובל שהוא: $i--
נשכתב את הקוד עם $i--:
$i = 5;
while($i > 0){
$i--;
echo $i . " melon<br />";
}
והתוצאה היא כפי שראינו מקודם.
לולאת for
לולאת for היא בעלת מבנה קומפקטי יותר מפני שהמספר ממנו מתחילים, התנאי והמונה נמצאים כולם בתוך סוגריים עגולים. זה התחביר:
for (מונה ;תנאי ;התחלה){
// הקוד כאן
}
לדוגמה, הקוד הבא שרץ מ$i =0 ל $i = 5 בהפרשים של 1.
for ($i = 0; $i <=5 ; $i++){
echo $i . " melon<br />";
}
והתוצאה:
0 melon
1 melon
2 melon
3 melon
4 melon
5 melon
גם את לולאת for ניתן להריץ מהערך הגבוה לנמוך, לדוגמה:
for ($i = 5; $i >=0 ; $i--){
echo $i . " melon<br />";
}
למה צריך שני סוגי לולאות?
לולאות for ו-while דומות מאוד, וזה אכן המצב ברוב המקרים. אבל ללולאת while יש יכולת נוספת, שלא קיימת ב-for, שהיא היכולת לרוץ גם בלי שמגדירים מראש את מספר הפעמים שהיא צריכה לרוץ. יכולת זו מתגלה כשימושית, כשרוצים, לדוגמה, לשלוף נתונים ממסד הנתונים, ואז לולאת while רצה כל עוד מסד הנתונים מזין אותה ברשומות (בלי צורך לדעת מראש את מספר הרשומות שמוחזרות ממסד הנתונים). בנושא של מסד הנתונים נדון בהרחבה בפרקים שמוקדשים לכך במדריך ה-PHP.
במדריך הבא נציג לולאה שמטפלת במערכים.
אהבתם? לא אהבתם? דרגו!
0 הצבעות, ממוצע 0 מתוך 5 כוכבים
המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.
למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.
שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.
המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?
השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.