Zurück zu: C Tutorial
while-Schleife in der Programmiersprache C
Schleifen können einen Codeblock ausführen, solange eine angegebene Bedingung erfüllt ist. Schleifen sind praktisch, weil sie Zeit sparen, Fehler reduzieren und den Code lesbarer machen.
nun … die while-Schleife
Die While
-Schleife durchläuft einen Codeblock, solange
eine angegebene Bedingung erfüllt
ist:
Syntax
while (Bedingung) {
// Programmcode, der ausgeführt wird
}
Im folgenden Beispiel wird der Code in der Schleife immer wieder ausgeführt, solange eine Variable (i) kleiner als 5 ist. Und außerdem wird bei jedem Durchlauf der aktuelle Wert von i mit printf ausgegeben.
Beispiel
int i = 0;
while (i < 5) {
printf("%d\n", i);
i++;
}
Hinweis: Vergessen Sie nicht, die in der Bedingung verwendete Variable (
i++
) zu erhöhen, da die Schleife sonst nie endet!
Die do/while-Schleife
Die do/while
Schleife ist eine Variante der while
Schleife. Diese Schleife führt den Codeblock einmal aus, bevor sie überprüft, ob die Bedingung erfüllt ist. Anschließend wiederholt sie die Schleife, solange die Bedingung erfüllt ist. Es wird aber immer nach jedem Durchlauf auf die Bedingung geprüft.
Syntax
do {
// Programmcode, der ausgeführt wird
}
while (Bedingung);
Das folgende Beispiel verwendet eine do/while
Schleife. Die Schleife wird immer mindestens einmal ausgeführt, auch wenn die Bedingung falsch ist, da der Codeblock ausgeführt wird, bevor die Bedingung getestet wird:
Beispiel
int i = 0;
do {
printf("%d\n", i);
i++;
}
while (i < 5);
Du musst immer darauf achten, dass die Laufvariable (hier die Variable
i
) am Ende jedes Durchlaufs um 1 erhöht wird. Ansonsten läuft die Schleife unendlich und das Programm wird niemals beendet.
Beispiele aus der Praxis
Um ein praktisches Beispiel der while-Schleife zu demonstrieren, haben wir ein einfaches „Countdown“-Programm erstellt:
Beispiel
int countdown = 3;
while (countdown > 0) {
printf("%d\n", countdown);
countdown--;
}
printf("Ende des Countdowns!!\n");
In diesem Beispiel erstellen wir ein Programm, das nur gerade Zahlen zwischen 0 und 10 (einschließlich) druckt:
Beispiel
int i = 0;
while (i <= 10) {
printf("%d\n", i);
i += 2;
}
In diesem Beispiel verwenden wir eine while-Schleife, um einige Zahlen umzukehren:
Beispiel
// Variable mit einer speziellen Zahl
int numbers = 12345;
// Eine Variable zum Speichern der umgekehrten Zahl
int revNumbers = 0;
// Zahl umkehren und Stellen neu ordnen
while (numbers) {
// letzte Ziffer von 'numbers' ermitteln und zu 'revNumbers' addieren
revNumbers = revNumbers * 10 + numbers % 10;
// Letzte Ziffer von 'numbers' eliminieren
numbers /= 10;
}
Um ein praktisches Beispiel für die Kombination der while Schleife mit einer if-else-Anweisung zu demonstrieren, nehmen wir an, wir spielen eine Partie Yatzy:
Beispiel
Drucken Sie „Yatzy!“. Wenn die Würfelzahl 6 ist:
int wuerfel = 1;
while (wuerfel <= 6) {
if (wuerfel < 6) {
printf("No Yatzy\n");
} else {
printf("Yatzy!\n");
}
wuerfel = wuerfel + 1;
}
Wenn die Schleife die Werte zwischen 1 und 5 durchläuft, wird „Kein Yatzy“ ausgegeben. Immer wenn sie den Wert 6 durchläuft, wird „Yatzy!“ ausgegeben. Und danach wird die Schleife beendet.