
Stell dir vor, du musst 100 Zahlen ausgeben. Mit allem was du bisher weißt, müsstest du 100 printf-Zeilen schreiben. Mit der while-Schleife schreibst du 3 Zeilen – und sie erledigt die Arbeit für dich! 🔁
🔁 Die while-Schleife
Eine while-Schleife wiederholt ihren Block so lange, wie die Bedingung wahr ist. Vor jedem Durchlauf wird die Bedingung geprüft:
while (Bedingung) { // wird wiederholt // solange Bed. wahr ist }
int i = 1; while (i <= 5) { printf("%d\n", i); i++; }
🔍 Ablauf einer while-Schleife
#include <stdio.h> int main() { int summe = 0; int i = 1; while (i <= 10) { summe += i; // 1+2+3+...+10 i++; } printf("Summe 1 bis 10: %d\n", summe); return 0; }
🚨 Endlosschleife – der gefährlichste Fehler!
Wenn die Bedingung niemals falsch wird (z.B. weil i++ vergessen wurde), läuft die Schleife für immer und das Programm hängt. Stoppe mit Ctrl+C im Terminal.
int i = 1;
while (i <= 5) {
printf("%d\n", i);
// i++ VERGESSEN → Endlosschleife!
}
✏️ Übungen
Schleife nachverfolgen
Was gibt dieser Code aus? Trage die Werte von i und ausgabe in die Tabelle ein:
int i = 10;
while (i > 0) {
printf("%d ", i);
i -= 3;
}
Durchlauf 1: i = _______ → Ausgabe: _______
Durchlauf 2: i = _______ → Ausgabe: _______
Durchlauf 3: i = _______ → Ausgabe: _______
Durchlauf 4: i = _______ → Schleife endet weil: _______
Endlosschleife finden
Welche dieser while-Schleifen ist eine Endlosschleife? Begründe:
A: int x = 1; while (x < 10) { printf("%d", x); x++; }
B: int x = 1; while (x < 10) { printf("%d", x); x--; }
C: int x = 10; while (x > 0) { printf("%d", x); x--; }
Antwort:
Begründung:
Eingabe-Validierung
Schreibe ein Programm, das den Benutzer so lange nach einer Zahl zwischen 1 und 10 fragt, bis die Eingabe gültig ist. (Tipp: while-Schleife mit Bedingung: Eingabe < 1 oder > 10)
Multiplikationstabelle
Schreibe ein Programm, das eine Zahl einliest und die Multiplikationstabelle (1×n bis 10×n) ausgibt.
Collatz-Folge
Die Collatz-Folge startet mit einer beliebigen Zahl n und wendet immer wieder die Regel an: wenn n gerade → n = n / 2, wenn n ungerade → n = n * 3 + 1. Die Folge endet wenn n = 1 erreicht wird. Schreibe das Programm und zähle die Schritte: