Schleifen, die mit while
gebildet werden, werden so oft
durchlaufen, bis die Bedingung im Bedingungsteil der Anweisung nicht
mehr erfüllt ist. Sollte diese Bedingung bereits falsch sein, wenn
das Programm auf die while
-Schleife trifft, so wird der
Schleifenkörper nicht durchlaufen.
char c=0; // 'loop initialization' while( c != 'y' && c != 'n' ) // first time c==0, so we enter the loop std::cin >> c; // can also be a block in { }
Das obige Beispiel erfordert die Initialisierung der Zeichenvariablen mit
einem Wert, so daß die Schleife auf jeden Fall durchlaufen wird. In
solchen Fällen ist häufig die Verwendung einer nicht abweisenden
Schleife mit do ... while(...)
intuitiver:
char c; do { std::cin >> c; } while( c != 'y' && c != 'n' );