Wie sich oben bereits andeutete, enthalten Schleifen neben der Abbruchbedingung häufig noch einen Schleifeninitialisierungsteil und möglicherweise Anweisungen, die den Wahrheitsgehalt der Schleifenbedingung beeinflussen und jedesmal während eines Durchlaufes ausgeführt werden.
Bei der Arbeit mit Feldern benötigt man häufig Schleifen, die die
Feldelemente einzeln ansprechen. Solch eine Schleife, programmiert mit
while
, könnte etwa so aussehen:
const int Size = 20; // .. int a[Size]; // .. int i=0; // loop initialization while ( i < Size ) { // loop condition, rejecting if false a[i] = i; i++; // loop control, performed after each pass }
Zur Abkürzung läßt sich in diesem Falle for(;;)
verwenden.
Die folgende Konstruktion mit for
ist der obigen (bis auf den
Sichtbarkeitsbereich der Variablen i
) vollständig
äquivalent, aber übersichtlicher und kürzer.
int a[20]; // .. for( int i=0; i < 20; i++ ) a[i] = i; // work on elements 0 .. 19
Diese Formulierung besitzt zwei Vorteile. Erstens ist die
Schleifenkontrolle in den drei durch Semikolon getrennten Teilen der
for
-Anweisung gut sichtbar zusammengefaßt und nicht über
den Schleifenkörper verstreut. Zweitens ist der
Verwendbarkeitsbereich der Variablen i
auf die
Schleifenkontrollstruktur und den Schleifenkörper beschränkt.