Die while-Schleife


Die for-Schleife führt eine bestimmte Sache eine feststehende Zahl von Durchgängen aus. Was passiert aber, wenn Sie vor dem Start der Schleifenoperation nicht wissen, wieviele Male Sie die Schleife durchlaufen wollen? In diesem Fall könnte eine andere Art der Schleife eingesetzt werden: die while-Schleife.

Imnächsten Beispiel, ENDON0, wird der Anwender zur Eingabe einer Folge von Zahlen aufgefordert. Wenn die Zahl, die eingegeben wird, 0 ist, endet die Schleife. Beachten Sie, daß es für das Programm keine Möglichkeit gibt, im voraus zu wissen, wieviele Zahlen wohl eingegeben werden, bevor die 0 erscheint: Das hängt einzig und allein vom Anwender ab.

// endon0.cpp // Veranschaulicht WHILE-Schleife #include <iostream.h> void main() { int n = 99; // Stellen Sie sicher, daß n nicht mit 0 initialisiert ist while(n != 0) // Schleife wiederholen, bis n gleich 0 ist cin >> n; }

Mehrfachanweisungen in der while-Schleife

Das nächste Beispiel, while4, verwndet Mehrfachanweisungen in einer while-Schleife. Es ist eine Variante des Programms cubelist, das weiter vorne mit einer for-Schleife gezeigt wurde. while4 berechnet für eine Folge von Ganzzahlen anstelle der dritten die vierte Potenz einer Zahl. Nehemn wie einmal an, daß es in diesem Programm besonders darauf ankommt, die Ergebnise in einer Spalte von 4 Ziffern Breite zu seten. Um sicherzusellen, daß die Ergebnise in die Splatenbreite passen, müssen wie die Schleife unterbrechen, bevor die Ergebnisse größer als 9999 werden. Ohne vorherige Berechnung wissen wir nicht, welche Zahl ein Ergebnis dieser Größe erzeugen wird, also lassen wie das Programm dies herausfinden. Der Prüfausdruck in der while-Anweisung beendet das Programm, bevor die Potenzzahlen zu groß werden.

// while4.cpp // Gibt die 4. Potenz einer Zahl aus #include <iostream.h> #include <iomanip.h> // für setw void main() { int pow=1; // Potenz ist am Anfang 1 int numb=1; // Variable numb geht von 1 bis ??? while(pow<10000) // Schleife, solange Basis weniger als 5 Ziffern hat { cout << setw(2) << numb; // Zahl anzeigen cout << setw(5) << pow << endl; // 4. Pozent anzeigen ++numb; // Auf nächste Basiszahl pow = numb*numb*numb*numb; // Die 4. Potenz der Basiszahl errechnen } }

Hier ist die Ausgabe:

1 1 2 16 3 81 4 256 5 625 6 1296 7 2001 8 4096 9 6561

Die nächste Zahl würde 10000 sein - zu bereit für unsere 4-Ziffernspalte, aber vor diesem Punkt wurde die Schleife beendet.


18