12.3 while

Die while-Anweisung wiederholt einen Anweisungsteil (eine Anweisung oder einen Block) eventuell mehrmals. Vor jedem erneuten Durchlauf wird eine Laufbedingung überprüft. Ist diese nicht erfüllt, dann wird mit der Ausführung der Schleife abgebrochen. Diese Bedingung wird immer nur am Schleifenanfang getestet.

Die while-Schleife ist also eine abweisende Schleife: Wenn die Laufbedingung schon beim ersten Auswerten nicht erfüllt ist, dann wird der Anweisungsteil gar nicht ausgeführt.

Innerhalb der Schleife kann man aber auch gezielt mit einer break-Anweisung die Schleife ganz abbrechen, oder mit continue den Rest des Anweisungsteils überspringen und gleich zum Prüfen der Bedingung zurückkehren.

Beispiele:

while( i ) --i;
zählt die Variable i so lange herunter, bis sie 0 ist.

while( --i );
macht fast das gleiche; die Anweisung hinter while() ist die leere Anweisung24.

while( (c=fgetc(f))!=EOF )
{
    printf( "c ist %d\n", c );
    if( c==26 ) break;
    if( isprint(c) )
        {
            printf( "%c\n", c );
            continue;
        }
    printf( "c ist nicht druckbar!\n" );
}
Hier wird die Schleife vorzeitig mit break verlassen, wenn der Wert 26 gelesen wurde.

Mit der continue-Anweisung wird zum Prüfungsteil der Schleife gesprungen, ohne den Rest des Schleifenkörpers zu beachten.



AnyWare@Wachtler.de