Menu
Coddy logo textTech

לולאת 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 או עולה עליו, ואז מוצג הערך הסופי.

challenge icon

אתגר

קל

קרא מספר שלם יחיד מהקלט שמייצג סכום יעד.

השתמש בלולאת 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;
?>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר PHP אונליין