Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

C

Home Kontrollstrukturen do-while continue

9.5 for

Die for Schleife erlaubt es, Anweisungen mehrfach zu wiederholen und dazu in dem Kontrollblock der Schleife eine Initialisierung, eine Bedingung für den Schleifendurchlauf und eine Aktion für jeden Schleifendurchlauf anzugeben. Nach dem Schlüsselwort for folgen in Klammern durch Semikolon getrennt eine Anweisung, die vor dem ersten Schleifendurchlauf ausgeführt wird. Anschließend ein Ausdruck, der vor jedem Schleifendurchlauf geprüft wird und einen Wert ungleich 0 ergeben muß, damit die Schleife ausgeführt wird. Zum Schluß folgt wieder eine Anweisung, die nach jedem Durchlauf der Schleife ausgeführt wird. Nach diesem Schleifenkopf folgt eine Anweisung oder ein Block in geschweiften Klammern als Schleifenrumpf. Es ist auch möglich, Teile wie z.B. die Initialisierung wegzulassen, also eine leere Anweisung zu schreiben. Dies macht für die Abbruchbedingung allerdings wenig Sinn.

Ein Beispiel sind Schleifen, bei denen die Anzahl der Durchläufe bekannt ist. Das folgende Beispiel setzt sämtliche Elemente eines Feldes auf den Index.

...
int i,f[10];

for (i=0;i<10;i++)
{
   f[i] = i;
}

Der Schleifenzähler i wird vor dem ersten Durchlauf mit 0 initalisiert und nach jedem Schleifendurchlauf inkrementiert. Die Schleife wird so lange ausgeführt, wie i kleiner 10 ist. Sie können sich das Verhalten durch zusätzliche Ausgaben verdeutlichen.

Um auch mehr als einen Ausdruck zu verwenden, kann der Komma Operator eingesetzt werden.

...
int i, j, f[10], g[10];

for (i=0, j=9; i<10; i++, j--)
{
   f[i] = g[j];
}

Die for Schleife ist nicht nur auf Schleifen mit einem Schleifenzähler anwendbar. Das folgende Beispiel initialisiert einen Pointer und prüft den Wert des Pointers.

...
char *p, *Text="Hallo";

for (p=Text; *p != '\0'; p++)
   printf("%c\n",*p);

Auch wenn es möglich ist, sehr komplexe Ausdrücke in den Schleifenkopf zu stecken, sollte man dennoch nur die Anweisungen dort hinschreiben, die für den Abbruch der Schleife relevant sind. In obigem Beispiel also das Inintialisieren und Inkrementieren des Pointers. Dadurch bleiben die Programme übersichtlicher.


Home Kontrollstrukturen do-while continue


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum