while-Schleife

0

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.

Nach oben scrollen