Die for-Schleife


Schleifen bewirken, daß ein Abschnitt Ihres Programms eine gewisse Anzahl von Wiederholungen durchlaufen wird. Die Wiederholung setzt sich fort, solange eine bestimmte Bedingung wahr ist. Wenn die Bedingung falsch wird, endet die Schleife, und die Programmblaufsteuerung geht zu den Anweisungen über, die der Schleife folgen.

Es gibt in C++ drei Arten von Schleifen, die for-Schleife, die while-Schleife und die do-Schleife.

Die for-Schleife

Die for-Schleife ist (wenigstens für die meisten Leute) die am leichtsten zu begreifende Schleife der C++-Schleifen. Alle Elemente ihrer Schleifensteuerung sind an einem Platz versamelt, während diese Steuerelemente in den anderen Schleifenkonstucktionen über das gesamte Programm versteut sind. Das macht es schwieriger, die Funktionsweise der Schleife zu enträseln.

Die for-Schleife führt einen Abschnit des Programmskodes eine fesgelegte Zahl von Durchläufen aus. Sie wird für gewöhnlich (wenn auch nicht immer) eingesetzt, wenn Sie bereits vor dem Eintritt in die Schleife wissen, wie oft Sie den Programmkode ausführen wollen.

Es folgt ein Beispiel, FORDEMO, das die Quadratzahlen der Zahlen von 0 bis 14 anzeigt:

// fordemo.cpp // Vernschaulicht einfache FOR-Schleife #include <iostream.h> void main() { int j; // Definition einer Schleifenvariable for(j=0; j<15; j++) // Schleife läuft von 0 bis 14 cout << j * j << " "; // Anzeige des Quadrats von j }

Hier die Ausgabe.

0 1 4 9 16 25 36 49 64 81 100 121 144 169 196

Das nächste Beispiel, CUBELIST, verwendet drei Anweisungen im Schleifenkörber. Es gibt die dritten Potenzen der Zahlen von 1 bis 10 in Zwei Splten aus.

// cubelist.cpp // Listet die dritten Potenzen der Zahlen von 1 bis 10 auf #include <iostream.h> #include <iomanip.h> // für setw void main() { int numb; // Definition der Schleifenvariable for(numb=1; numb<=10; numb++) // Schleife von 1 bis 10 { cout << setw(4) << numb; // nzeige der 1. Spalte int cube = numb*numb*numb; // Dritte Potent errechnen cout << setw(6) << cube << endl; } }

Hier folgt die Ausgababe des Programms:

1 1 2 8 3 27 4 64 5 125 6 216 7 343 8 512 9 729 10 1000

Einzug und Ausführungsweise der Schleifen

Ein guter Progrmmierstil schreibt zwingend vor, daß der Schleifenkörber eingezogen, d.h. relativ zur Schleifenanweisung (und zum Rest des Progrmms) nach rechts eingezogen wird. Im Beisbiel FORDEMO ist eine Zeile eingezogen, und in CUBELIST wird der gesamte Block, inklusive der geschweiften Klammern, eingerückt. Dieser Einzug stellt eine wichtige visuelle Hilfe füür den Programmierer dar: Er macht es leicht, Anfang und Ende des Schleifenkörbers zu erkennen. Für den Übersetzer spielt es keine Rolle, ob Sie den Einzug nun verwenden oder nicht (zumindest gibt es keine Möglichtkeit, dies offenzulegen, wenn es sich anders verhalten sollte).

Der Inkrementausdruck muß nicht unbedingt der Erhöhung der Schleifenvariablen dienen. Er kann jede beliebige Operation ausführen. Im nächsten Beispiel verringert er die Schleifenvariable. Das betreffende Programm, FACTOR, fordert den Anwender zur Eingabe einer Zahl auf und berechnet anschließend die Fakultät zu dieser Zahl. (Die Fakultät wird berechnet, indem man die Ursprungszahl mit allen positiven Ganzzahlen multipliziert, die kleiner als diese Zahl sind. Folglich ist die Fakultät zur Zahl 5 gleich 5*4*3*2*1, also 120.)

// factor.cpp // Berechnung der Fakultät, Demonstration der FOR-Schleife #include <iostream.h> void main() { unsigned int numb; unsigend long fact=1; // Typ long für größere Zahlen cout << "\nGeben Sie eine Zahl ein: "; cin >> numb; for(int j=numb; j>0; j--) // Multipliziere 1 mit fact *= j; // numb, numb-1 ..., 2, 1 cout << "Fakultät ist " << fact; // Ergebnis ist Fakultät }


17