Forum und email

do..while

do..while-Schleifen sind den while -Schleifen sehr ähnlich, außer dass der Wahrheitsgehalt des Ausdrucks erst am Ende jedes Durchlaufs geprüft wird, statt am Anfang. Der Hauptunterschied zu gewöhnlichen while-Schleifen ist der, dass die Schleife bei do..while in jeden Fall einmal durchlaufen wird (die Bedingung wird erst am Ende eines Durchlaufs geprüft).Bei while-Schleifen hingegen kann es durchaus passieren, dass die Schleife nie durchlaufen wird (die Bedingung wird immer am Anfang eines Durchlaufs überprüft. Wird diese Bedingung von Anfang an als FALSE ausgewertet endet die Ausführung der Schleife sofort).

Es gibt nur eine Syntax für do..while-Schleifen:

<?php
$i 
0;
do {
    echo 
$i;
} while (
$i>0);
?>

Die obige Schleife wird genau einmal durchlaufen, da nach der ersten Wiederholung die Erfüllung der Bedingung geprüft wird. Diese Bedingung ist aber nicht erfüllt ($i ist nicht größer als 0), wird als FALSE ausgewertet, und die Schleifenausführung beendet.

Erfahrene C-Anwender kennen auch die Möglichkeit, Programm-Blöcke mit do..while (0) einzuschliessen und dann die break Anweisung zu benutzen. Der folgende Programm-Ausschnitt zeigt diese Möglichkeit:

do {
    if ($i < 5) {
        echo "i ist nicht groß genug";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    echo "i ist ok";

    /* mach was mit i */

} while (0);

Es ist nicht weiter tragisch, wenn Sie dieses Beispiel nicht oder nur zum Teil verstehen. Sie können auch ohne dieses 'Feature' effektive PHP-Programme und Skripte schreiben.