![]() |
![]() |
C++ |
G.Eichelsdörfer - Staatliche Technikerschule Weilburg |
![]() |
![]() |
Ihr Struktogramm sollte etwa wie das linke aussehen.
Warum ist hier die kopfgesteuerte Schleife zu bevorzugen?
Der fett eingerahmte und gelb unterlegte Teil bildet die Sequenz einer durch einen Zähler (i) gesteuerten Schleife, also eine zählergesteuerte Schleife.
Im Prinzip wird vor der eigentlichen Schleife der Zähler (i) initialisiert. Darauf folgt eine Schleife, die hier kopfgesteuert ist. Die Schleifenbedingung enthält einen Vergleich des Zählers (i) mit einem Endwert (n). Dann folgen die Anweisungen im Schleifenrumpf. Als letzte Anweisung im Schleifenrumpf wird der Zähler inkremenetiert. Dies zeigt das rechte Struktogramm. Alle für das Schleifenprinzip entscheidenden Teile sind dort grün hinterlegt.
Die C++ Quelltextteile sehen etwa so aus:
zum Fakultät-Programm | aufwärts zählen | abwärts zählen | ||
---|---|---|---|---|
cin >> n;
|
<Zaehler initialisieren>
|
<Zaehler initialisieren>
|
In der abwärts zählenden Schleife (rechts) sehen Sie den Dekrementieroperator --. Dieser verringert den Inhalt des Zählers um 1. Hier ist es der Predekrementieroperator. Entsprechend gibt es auch den Postdekrementieroperator (Zaehler--).
In C++ gibt es genau genommen keine zählergesteuerten Schleifen. Hier wird für diesen Schleifentyp nur eine kürzere Schreibweise der obigen Quelltexte verwendet. So etwas nennt man syntaktischen Zucker. Dieser versüßt die Arbeit etwas, ist jedoch nicht wirklich erforderlich. Diese kürzer formulierte Schleife wird nach ihrem einleitenden Schlüsselwort for-Schleife genannt. Sie kann überall dort eingesetzt werden, wo eine kopfgesteuerte Schleife vorliegt.
Syntax der for-Schleife | ||
---|---|---|
zur Fakultät | allgemein | |
cin >> n;
oder auch so:
cin >> n;
|
for(<Initialisierung>; <Schleifenbedingung>;
|