C 11: Kontrollstrukturen, Schleifen
Genug Theorie, hier ein Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> int main() { int i = 1; while(i<=3) { printf("%d. while\n", i); i++; } i = 1; do { printf("%d. do-while\n", i); i++; } while(i<=3); for(i=1; i<=3; i++) printf("%d. for\n", i); return 0; } |
Hier sind einige ganz wichtige Sachen zu erwähnen. Die while
-Schleife prüft, ob i
kleiner gleich 3 ist. Das ist wahr. Damit wird der Schleifenkörper (alles zwischen den geschweiften Klammern) ausgeführt. Wichtig: nicht vergessen, die Ausdrucksvariable zu verändern, sonst läuft die Schleife ewig.
Danach wird i
wieder auf 1
gesetzt, damit die nächste Schleife genau so ausgeführt werden kann. Hier wird jedoch erst ausgeführt und dann geprüft. Der Unterschied zur while
-Schleife ist also, dass eine do-while
-Schleife immer mind. einmal ausgeführt wird.
Zuletzt kommt for
an die Reihe. Hier wird die Variable im Schleifenkopf wieder auf 1
gesetzt., danach folgt der schon gesehene Wahrheitsausdruck und danach die Addition. Somit fasst diese Schleife jegliche Verwaltung der Schleife im Kopf zusammen, sodass im Körper wirklich nur der Code steht, den man auch wirklich braucht. Erinnert euch an Blöcke: wenn nur eine Zeile im Block steht, können die geschweiften Klammern weggelassen werden. So auch in dieser for
-Schleife.
Alle Schleifen produzieren das gleiche Ergebnise, wie euch die Ausgabe beweisen wird.
Nicht direkt zu den Schleifen, aber besonders interessant in Verwendung mit diesen, sind die folgenden Statements: continue
und break
. Ein continue
bricht den aktuellen Durchlauf der Schleife ab und macht mit dem nächsten weiter. Das break
kennen wir schon von dem switch
-Statement. Es bricht die ganze Schleife (also nicht nur den aktuellen Durchlauf) ab und führt den der Schleife folgenden Code aus.