לולאת while
חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 48 מתוך 71.
לולאת for עובדת מצוין כשידוע לך מספר האיטרציות המדויק, ואילו לולאת while מתאימה בדיוק כשרוצים להמשיך בלולאה עד שתנאי הופך לשקרי.
לולאת while בודקת את התנאי שלה לפני כל איטרציה. אם התנאי נכון, הקוד שבתוכה רץ. הדבר נמשך עד שהתנאי נעשה שגוי.
<?php
$count = 1;
while ($count <= 3) {
echo "Count: $count\n";
$count++;
}
?>הפלט הוא:
Count: 1
Count: 2
Count: 3הלולאה מתחילה בבדיקה אם $count <= 3. מכיוון שהתנאי נכון, הקוד רץ ומגדיל את $count. כאשר $count מגיע ל־4, התנאי נכשל והלולאה נעצרת.
חשוב: ודאו תמיד שמשהו בתוך הלולאה יהפוך בסופו של דבר את התנאי לשקרי. אחרת, תיצרו לולאה אינסופית שלא תפסיק לפעול.
<?php
$total = 0;
$num = 1;
while ($total < 10) {
$total += $num;
$num++;
}
echo $total;
?>כך מתווספים מספרים עד שהסכום מגיע ל־10 או עולה עליו, ואז מוצג הערך הסופי.
אתגר
קלקרא מספר שלם יחיד מהקלט שמייצג סכום יעד.
השתמש בלולאת while כדי לחבר מספרים עוקבים החל מ־1 (1, 2, 3, 4, ...) עד שהסכום יגיע לסכום היעד או יעלה עליו.
הדפס את הסכום הסופי בשורה הראשונה, ואת המספר האחרון שנוסף בשורה השנייה.
דוגמה 1:
אם הקלט הוא 10, הפלט צריך להיות:
10
4(1 + 2 + 3 + 4 = 10, שמגיע לסכום היעד)
דוגמה 2:
אם הקלט הוא 15, הפלט צריך להיות:
15
5(1 + 2 + 3 + 4 + 5 = 15)
דוגמה 3:
אם הקלט הוא 7, הפלט צריך להיות:
10
4(1 + 2 + 3 + 4 = 10, שעולה על 7)
נסו בעצמכם
<?php
// קראו את סכום היעד
$target = intval(fgets(STDIN));
// אתחלו את המשתנים
$total = 0;
$num = 0;
// TODO: כתבו כאן את הקוד שלכם
// השתמשו בלולאת while כדי לחבר מספרים עוקבים (1, 2, 3, ...)
// עד שהסכום יגיע ליעד או יעבור אותו
// הדפיסו את הסכום הסופי ואת המספר האחרון שנוסף
echo $total . "\n";
echo $num;
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואהשוויון וזהותאופרטורים לוגיים — חלק 1אופרטורים לוגיים — חלק 2סיכום — לוגיקה פשוטה2משתנים וסוגי נתונים
מספריםמחרוזות ומירכאותערכים בוליאנייםכללי מתן שמותסיכום – אתחול משתניםמשתנים ריקיםשרשור מחרוזותקבלת קלט מהמשתמשהמרה לסוגים שונים3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור מודולואופרטור חזקההשמה משולבתהגדלה והקטנהקדימות אופרטוריםסיכום — חישובים פשוטיםאופרטורים למחרוזותתרגלו בעצמכם: קומפיילר PHP אונליין