While-Schleife

Die while-Schleife wird dazu benutzt, eine unbestimmte Anzahl an Wiederholungen zu erzeugen. Das Ende der Wiederholungen wird bei einem der Schleifendurchläufe erreicht, es kann nicht vorher errechnet werden. while-Schleifen werden häufig bei Datenbank-Abfragen eingesetzt .

Im nachfolgenden Beispiel wird gewürfelt, solange die Summe der gewürfelten Zahlen kleiner als 30 ist. Zum Erzeugen der Würfel-Ergebnisse wird der Zufallsgenerator von PHP verwendet. Dieser Zufallsgenerator muss zunächst initialisiert werden, damit er »tatsächlich zufällige« Ergebnisse produziert. Innerhalb der Schleife wird jeweils ein Würfel-Ergebnis erzeugt. Die dazu notwendigen Funktionen srand und rand werden im Verlauf dieses Buches noch näher erläutert (siehe mathematische Funktionen). Die Anzahl der Würfe ist sowohl dem Entwickler als auch dem Benutzer unbekannt, daher ist es günstiger, eine for-Schleife zu verwenden.

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

<html>
<body>
<?php
srand((double)microtime()*1000000);
$summe = 0;
while ($summe < 30)
{
$zufallszahl = rand(1,6); // Würfel
$summe = $summe + $zufallszahl;
echo "Zahl $zufallszahl, Summe $summe<p>";
}
?>
</body>
</html>

Bedingung zur Wiederholung

Die Bedingung zur Wiederholung muss in Klammern stehen. Bei der ersten Prüfung der Bedingung hat $summe noch den Wert 0, deshalb darf die Schleife durchlaufen werden. Innerhalb der Schleife wird die gewürfelte Zufallszahl zur Variablen $summe addiert. Die gewürfelte Zahl und die aktuelle Zwischensumme werden ausgegeben. Es wird wiederum daraufhin überprüft, ob die Summe noch kleiner als 30 ist. Ist dies der Fall, so wird die Schleife erneut durchlaufen. Anderenfalls wird mit der Anweisung hinter dem Schleifenende fortgefahren. Falls dort keine Anweisung mehr steht, ist das Programm zu Ende. Es wird also so lange (englisch: while) eine Zahl addiert, bis die Bedingung für die Wiederholung nicht mehr gilt.