Join Up!
104887 members and counting!

 
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links 
search for in the  
previouswhilefornext
Last updated: Mon, 28 Oct 2002
view the printer friendly version or the printer friendly version with notes or change language to Czech | Finnish | Spanish

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 einer Iteration geprüft), wogegen es bei while-Schleifen durchaus passieren kann, 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:

$i = 0;
do {
    print $i;
} while ($i>0);

Die obige Schleife wird genau einmal durchlaufen, da nach der ersten Wiederholung die Erfüllung der Bedingung geprüft wird. Da diese aber nicht erfüllt, also FALSE ist ($i ist nicht größer als 0), wird 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 dies:

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

    ...bearbeite 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.

User Contributed Notes
do..while
add a note about notes
There are no user contributed notes for this page.
previouswhilefornext
Last updated: Mon, 28 Oct 2002
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by: http://phpbuilder.com/
Last updated: Thu Oct 31 18:34:28 2002 EST