Schleifenende

Wir kommen langsam zum Ende der Schleifen.

Zwangsende (break)

Wie können wir eine Schleife zwingen, sich vorzeitig zu beenden? Dafür gibt es die Anweisung "break". Sobald diese ausgeführt wird, wird die Schleife abrupt beendet.

<?PHP

for  ($i  1$i  10$i++)  {
    echo 
$i  '<br>';
    if  (
$i  ==  5)  {  break;  }
}

?>

Ausgabe:

1
2
3
4
5

Obwohl die Schleife bis 10 hochzählen soll, wird sie bei der 5 beendet.

Sprünge (continue)

Manchmal möchte man nicht, dass die enthaltenen Anweisungen ausgeführt werden, aber die Schleife soll weiter laufen. Die Anweisungen sollen also übersprungen werden.

<?PHP

for  ($i  1$i  <=  10$i++)  {
    if(
$i  2)  {
          continue;
    }
    echo 
$i  '<br>';
}

?>

Ausgabe:

2
4
6
8
10

Warum? Die erste Anweisung prüft, ob es einen Rest gibt, wenn $i durch 2 geteilt wird (also wahr bei ungeraden Zahlen). Wenn $i nun eine ungerade Zahl ist, wird "continue" ausgeführt. Das verursacht, dass alle anderen nachfolgenden Anweisungen innerhalb der Schleife nicht mehr durchgeführt werden, und die Schleife sofort mit dem nächsten Durchgang beginnt. Somit wird die zweite Anweisung "echo" nur dann ausgeführt, wenn $i eine gerade Zahl ist.

Der geniale Programmierer würde jetzt sagen: "Ist doch quatsch! Da mach ich doch das echo ins if, und brauch das continue garnicht." Stimmt, aber vieleicht wird das continue doch mal ganz praktisch, bzw. Resourcen schonender.

Schleife in Schleife

Schleifen sind Anweisungen, und Anweisungen befinden sich in Schleifen. Somit können diese auch verschachtelt werden. Zum Beispiel möchte ich alle Zahlenreihen von 1 bis 10.

<?PHP

for  ($zahl  1$zahl  <=  10$zahl++)  {
    echo 
'<p>Zahlenreihe  von  '  $zahl  '</p>';

    for  (
$i  1$i  <=  10$i++)  {
          echo 
$zahl  $i;
          echo 
'<br>';
    }
}

?>