PHP - יציאה מלולאות (loops) בעזרת break

break ישמש אותנו כדי להפסיק ריצה של לולאות (loops) קוד מסוג for, foreach, while, do...while וכן switch הנחשבת גם היא ללואה (loop) לצורך העניין הזה בלבד. break יכול (אבל לא חייב) לקבל ארגומנט מספרי המדריך את השרת המריץ את הקוד מכמה לולאות המקננות זו בתוך זו עליו לצאת.

דוגמה מעשית לשימוש ב - break כדי לצאת מלולאה

<?php
$d=1;
while ($d < 10)
{
  if ($d == 5) break;
  echo "This is Loop No. " . $d . "<br/>"; 
  $d++;
}

?>

תוצאת הקוד שלמעלה תהיה:

This is Loop No. 1
This is Loop No. 2
This is Loop No. 3
This is Loop No. 4

בתחילת הסיבוב  החמישי התנאי במשפט ה - if התמלא ולכן ה - break התבצע והשרת הפסיק להריץ את הלולאה (loop).

דוגמה מעשית לשימוש ב - break המקבל ארגומנט

כדי להבין את נושא הארגומנט שאותו מקבל ה - break נתבונן בקוד הבא:

$d=1;
while ($d < 4)
{
  echo "This is Loop No. " . $d . "<br/>";
  $d++;
  $e=1;
  while ($e < 3)
{
  echo "  This is inner Loop No. " . $e . "<br>";
  $e++;

}
}

בדוגמת הקוד שלמעלה לא השתמשנו ב - break  אלא רק בנינו שתי לולאות האחת בתוך השניה. תוצאת הרצת הקוד תהיה:

This is Loop No. 1
  This is inner Loop No. 1
  This is inner Loop No. 2
This is Loop No. 2
  This is inner Loop No. 1
  This is inner Loop No. 2
This is Loop No. 3
  This is inner Loop No. 1
  This is inner Loop No. 2

כעת נשתמש ב - break בתוך הלולאה (loop) הסופית אך לא נעביר ל - break זה ארגומנט מספרי. הקוד שלנו ייראה כך:

$d=1;
while ($d < 4)
{
  echo "This is Loop No. " . $d . "<br/>";
  $d++;
  $e=1;
  while ($e < 3)
{
  if ($e == 2) break; 
  echo "  This is inner Loop No. " . $e . "<br>";
  $e++;

}
}

תוצאת הרצת הקוד תהיה התוצאה הבאה:

This is Loop No. 1
  This is inner Loop No. 1
This is Loop No. 2
  This is inner Loop No. 1
This is Loop No. 3
  This is inner Loop No. 1

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

$d=1;
while ($d < 4)
{
  echo "This is Loop No. " . $d . "<br/>";
  $d++;
  $e=1;
  while ($e < 3)
{
  if ($e == 2) break 2; 
  echo "  This is inner Loop No. " . $e . "<br>";
  $e++;

}
}

תוצאת הרצת קוד זה תהיה:

This is Loop No. 1
  This is inner Loop No. 1

כפי שביכולתכם לראות הלולאה הפנימית והחיצונית רצו רק פעם אחת וזאת בגלל של - break שבלולאה (loop) הפנימי הוספנו את הארגומנט 2 - כלומר, שעליו להפסיק את ריצתן של שתי לולאות ולא רק אחת. חשוב לדעת שאם תעבירו ל - break ארגומנט גדול ממספר הלולאות שבתוכו משפט זה נמצא הדבר יגרום לשגיאה.

הערה חשובה: השימוש ב - break ללא ארגומנט זהה לשימוש ב - break המקבל ארגומנט שערכו 1.

 
 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש