Schleifenabbruch mit break

Mit Hilfe der Anweisung break, kann eine Schleife vorzeitig beendet werden. Damit wird eine zusätzliche Möglichkeit für eine Schleifensteuerung geschaffen, die ein Programm unter Umständen besser lesbar machen kann. Eine break-Anweisung wird immer gemeinsam mit einer if-Bedingung auftreten, da der vorzeitige Abbruch einer Schleife nur in einem »Sonderfall« erfolgen sollte.

Im nachfolgenden Beispiel wird wiederum gewürfelt, solange die Summe kleiner als 30 ist. Es soll allerdings maximal neun Mal gewürfelt (Sonderfall) und dann abgebrochen werden.

Das Programm sieht wie folgt aus (Datei uc19.php):

<html>
<body>
<?php
srand((double)microtime()*1000000);
$summe = 0;
$zaehler = 0;
while ($summe < 30)
{
$zufallszahl = rand(1,6);
$summe = $summe + $zufallszahl;
$zaehler = $zaehler + 1;
echo "Nr. $zaehler, Zahl $zufallszahl,";
echo " Summe $summe<p>";
if ($zaehler >= 9) break; // Sonderfall
}
?>
</body>
</html>

Es wird ein zusätzlicher Zähler verwendet (Variable $zaehler). Diese Variable wird zunächst auf 0 gesetzt. Innerhalb der Schleife wird ihr Wert immer um 1 erhöht. Sie zählt also die Anzahl der Schleifendurchläufe. Falls dabei die Zahl 9 erreicht bzw. überschritten wird, bricht die Schleife unmittelbar ab. Dies geschieht auch dann, wenn die Summe noch kleiner als 30 ist.

Anmerkung:

Der Vergleich if ($zaehler == 9) hätte auch zu einem Abbruch geführt, allerdings nur bei einer Erhöhung um 1. Falls man in einem anderen Programm mit Hilfe einer anderen Veränderung der Schleifen-Variablen nicht genau den Wert 9 erreichen würde, so würde die Schleife über die vorgesehene Abbruch-Stelle hinausgehen. Daher arbeitet man an diesen Stellen normalerweise mit Bereichsangaben (>= oder <=).

Schleifensteuerung mit continue

Die Anweisung continue wird verwendet, um aufgrund einer Bedingung den Rest einer Schleife zu überspringen und unmittelbar mit dem nächsten Schleifendurchlauf fortzusetzen.