C - While-Schleife: Dein Tor zur wiederholenden Programmierung

Hallo da, zukünftiger Codingsuperstar! Bist du bereit, in die wundersame Welt der Schleifen einzutauchen? Heute werden wir eines der grundlegendsten Konzepte der Programmierung erkunden: die While-Schleife in C. Verlass dich darauf, dass du dich nach dem Beherrschen dieser感到像解锁 eine Superkraft im Coden wirst!

C - While loop

Was ist eine While-Schleife?

Bevor wir ins Detail gehen, lassen wir uns verstehen, was eine While-Schleife ist. Stell dir vor, du spielst ein Videospiel, bei dem du 10 Gegner besiegen musst, um eine Ebene abzuschließen. Würdest du nicht lieber nur sagen können: "Kontrolliere, solange noch Gegner übrig sind"? Genau das macht eine While-Schleife in der Programmierung!

Eine While-Schleife ermöglicht es dir, einen Block Code solange wiederholen, wie eine bestimmte Bedingung wahr ist. Es ist, als würde man seinem Computer sagen: "Mach das hier, bis ich dir sage, dass du aufhören sollst!"

Syntax der C While-Schleife

Schauen wir uns die grundlegende Struktur einer While-Schleife in C an:

while (bedingung) {
// Code, der wiederholt werden soll
}

So einfach ist das! Die bedingung wird vor jeder Iteration der Schleife überprüft. Wenn sie wahr ist, wird der Code innerhalb der geschweiften Klammern {} ausgeführt. Dieser Prozess wiederholt sich, bis die Bedingung falsch wird.

Flussdiagramm der C While-Schleife

Um zu visualisieren, wie eine While-Schleife funktioniert, schauen wir uns ein Flussdiagramm an:

┌─────────────┐
│   Start     │
└──────┬──────┘
│
▼
┌─────────────────┐
│ Check bedingung │
└────────┬────────┘
│
▼
┌───────────┐    Nein
┌───┤ Bedingung ├────────┐
│   │   wahr?   │        │
│   └───────────┘        │
│         │ Ja           │
│         ▼              │
│  ┌──────────────┐      │
│  │ Code ausführen │      │
│  └──────┬───────┘      │
│         │              │
└─────────┘              │
▼
┌──────────┐
│   Ende    │
└──────────┘

Dieses Flussdiagramm zeigt, dass die Bedingung zuerst überprüft wird. Wenn sie wahr ist, wird der Code ausgeführt, und dann gehen wir zurück, um die Bedingung erneut zu überprüfen. Dieser Zyklus setzt sich fort, bis die Bedingung falsch wird.

Wie funktioniert die While-Schleife in C?

Lassen wir den Prozess auseinanderfallen:

  1. Das Programm trifft auf die While-Schleife.
  2. Es überprüft die Bedingung in den Klammern.
  3. Wenn die Bedingung wahr ist, führt es den Code im Inneren der Schleife aus.
  4. Nach dem Ausführen des Codes geht es zurück zu Schritt 2.
  5. Wenn die Bedingung falsch ist, überspringt es die Schleife und führt mit dem Rest des Programms fort.

Beispiel einer While-Schleife in C

Zeit für unser erstes Beispiel! Lassen wir ein einfaches Countdown-Programm erstellen:

#include <stdio.h>

int main() {
int countdown = 5;

while (countdown > 0) {
printf("%d...\n", countdown);
countdown--;
}

printf("Blast off!\n");
return 0;
}

Ausgabe:

5...
4...
3...
2...
1...
Blast off!

Lassen wir das auseinanderfallen:

  1. Wir beginnen mit countdown = 5.
  2. Die While-Schleife überprüft, ob countdown > 0 (was wahr ist).
  3. Sie druckt den aktuellen Countdown-Wert.
  4. Wir verringern countdown um 1 mit countdown--.
  5. Schritte 2-4 wiederholen sich, bis countdown 0 wird.
  6. Wenn countdown 0 ist, wird die Bedingung falsch, und wir verlassen die Schleife.
  7. Schließlich drucken wir "Blast off!"

Verwenden von While als bedingte Schleife

Die While-Schleife ist perfekt für Situationen, in denen du nicht genau weißt, wie oft du etwas wiederholen musst. Sehen wir uns ein Beispiel an, bei dem wir den Benutzer bitten, eine Zahl zu raten:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
srand(time(0));  // Initialisierung für die Zufallszahlengenerierung
int secret = rand() % 100 + 1;  // Zufallszahl zwischen 1 und 100
int guess = 0;
int attempts = 0;

printf("Ich denke an eine Zahl zwischen 1 und 100. Kannst du sie erraten?\n");

while (guess != secret) {
printf("Gib deine Vermutung ein: ");
scanf("%d", &guess);
attempts++;

if (guess < secret) {
printf("Zu niedrig! Versuche es nochmal.\n");
} else if (guess > secret) {
printf("Zu hoch! Versuche es nochmal.\n");
}
}

printf("Glückwunsch! Du hast die Zahl in %d Versuchen erraten!\n", attempts);
return 0;
}

In diesem Beispiel wissen wir nicht, wie viele Versuche der Benutzer benötigen wird, daher ist eine While-Schleife perfekt. Die Schleife setzt sich fort, solange die Vermutung nicht mit der geheimen Zahl übereinstimmt.

While-Schleife mit break und continue

Manchmal möchtest du eine Schleife frühzeitig beenden oder zur nächsten Iteration springen. Da kommen break und continue ins Spiel.

break

Die break-Anweisung beendet die Schleife sofort. Hier ist ein Beispiel:

#include <stdio.h>

int main() {
int i = 1;
while (1) {  // Dies erstellt eine unendliche Schleife
printf("%d ", i);
if (i == 5) {
break;  // Verlässt die Schleife, wenn i 5 erreicht
}
i++;
}
printf("\nSchleife beendet!\n");
return 0;
}

Ausgabe:

1 2 3 4 5
Schleife beendet!

continue

Die continue-Anweisung überspringt den Rest der aktuellen Iteration und springt zur nächsten. Sehen wir uns das in Aktion an:

#include <stdio.h>

int main() {
int i = 0;
while (i < 10) {
i++;
if (i % 2 == 0) {
continue;  // Überspringt gerade Zahlen
}
printf("%d ", i);
}
printf("\nSchleife beendet!\n");
return 0;
}

Ausgabe:

1 3 5 7 9
Schleife beendet!

Weitere Beispiele der C While-Schleife

Sehen wir uns einige weitere Beispiele an, um unser Verständnis zu festigen:

Beispiel 1: Summe von Zahlen

#include <stdio.h>

int main() {
int num, sum = 0;

printf("Gib Zahlen zur Summe ein (gib 0 ein, um zu beenden):\n");

while (1) {
scanf("%d", &num);
if (num == 0) {
break;
}
sum += num;
}

printf("Die Summe ist: %d\n", sum);
return 0;
}

Dieses Programm adds fortlaufend Zahlen zusammen, bis der Benutzer 0 eingibt.

Beispiel 2: Fibonacci-Folge

#include <stdio.h>

int main() {
int n, first = 0, second = 1, next;

printf("Gib die Anzahl der Fibonacci-Termen ein, die generiert werden sollen: ");
scanf("%d", &n);

printf("Fibonacci-Folge:\n");

int i = 0;
while (i < n) {
if (i <= 1) {
next = i;
} else {
next = first + second;
first = second;
second = next;
}
printf("%d ", next);
i++;
}

printf("\n");
return 0;
}

Dieses Programm generiert die Fibonacci-Folge bis zu n Terme.

While vs. do while Schleifen

Bevor wir schließen, vergleichen wir schnell While-Schleifen mit ihrem Cousin, der do-while-Schleife:

Eigenschaft While-Schleife do-while-Schleife
Bedingungsprüfung Am Anfang Am Ende
Mindestausführungen 0 (wenn die Bedingung initially falsch ist) 1 (wird immer mindestens einmal ausgeführt)
Syntax while (bedingung) { ... } do { ... } while (bedingung);
Beste Verwendungszwecke Wenn du nicht sicher bist, ob du die Schleife überhaupt ausführen musst Wenn du weißt, dass du die Schleife mindestens einmal ausführen musst

Der Hauptunterschied besteht darin, dass eine do-while-Schleife ihren Code-Block mindestens einmal ausführt, bevor sie die Bedingung überprüft.

Und das war's, mein Coden-Novize! Du hast gerade die Macht der While-Schleifen in C entsperrt. Denke daran, dass Übung den Meister macht, also fürchte dich nicht, mit diesen Konzepten herumzuspielen. Bereit zum Loopen wie ein Profi! ??

Credits: Image by storyset