Menu
Coddy logo textTech

הוראת break

חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 51 מתוך 71.

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

דמיין שאתה מחפש ערך מסוים במערך. לאחר שמצאת אותו, אין טעם לבדוק את שאר האיברים. שימוש ב-break חוסך איטרציות מיותרות.

<?php
$numbers = [3, 7, 2, 9, 5, 1];

foreach ($numbers as $num) {
    if ($num === 9) {
        echo "Found 9!\n";
        break;
    }
    echo "Checking $num\n";
}

echo "Search complete";
?>

הפלט הוא:

Checking 3
Checking 7
Checking 2
Found 9!
Search complete

שימו לב ש-5 ו-1 לעולם אינם נבדקים. ברגע שהלולאה נתקלת ב-9, break יוצא מהלולאה לחלוטין, והביצוע קופץ אל "Search complete".

פקודת break פועלת עם כל סוגי הלולאות: for, while ו-foreach. היא שימושית במיוחד כשמחפשים משהו או כשמתקיים תנאי מסוים שמשמעותו שהלולאה צריכה להיעצר מיד.

challenge icon

אתגר

קל

קרא שתי שורות קלט:

  1. רשימת מספרים מופרדת בפסיקים (למשל, 4,8,15,16,23,42)
  2. מספר היעד לחיפוש

השתמש בלולאת foreach כדי לחפש במערך את מספר היעד. כשתמצא אותו, הדפס Found [target] at index [index]! והשתמש ב-break כדי לצאת מהלולאה מיד.

אם הלולאה מסתיימת בלי למצוא את מספר היעד, הדפס [target] not found.

רמז: השתמש בתחביר של מפתח-ערך בלולאת foreach כדי לעקוב אחר האינדקס.

דוגמה 1:

אם הקלט הוא 10,25,30,45,50 ו-30, הפלט צריך להיות:

Found 30 at index 2!

דוגמה 2:

אם הקלט הוא 5,10,15,20,25 ו-20, הפלט צריך להיות:

Found 20 at index 3!

דוגמה 3:

אם הקלט הוא 1,2,3,4,5 ו-99, הפלט צריך להיות:

99 not found

נסו בעצמכם

<?php
// קראו את הקלט
$numbers = explode(',', trim(fgets(STDIN)));
$target = trim(fgets(STDIN));

// TODO: כתבו את הקוד שלכם למטה
// השתמשו בלולאת foreach בתחביר מפתח-ערך כדי לחפש את target
// כאשר הוא נמצא, הדפיסו "Found [target] at index [index]!" וצאו מהלולאה
// אם הוא לא נמצא לאחר הלולאה, הדפיסו "[target] not found"

?>
quiz iconבחנו את עצמכם

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

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

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