C++ while- und do-while-Schleifen – Wiederholungen im Code meistern
C++ while- und do-while-Schleifen – Wiederholungen im Code meistern
Dieser Leitfaden erklärt while- und do-while-Schleifen in C++ mit klaren Beispielen, Flussdiagrammen und Best-Practice-Tipps.
Schleifen sind ein Eckpfeiler effizienter Programmierung: Sie lassen Sie einen Codeblock wiederholt ausführen, ohne Zeilen zu duplizieren. Ob Sie über einen Bereich iterieren oder auf Benutzereingaben warten – die Wahl des richtigen Schleifentyps ist entscheidend für lesbaren, wartbaren Code.
In C++ gibt es drei primäre Schleifenkonstrukte:
for-Schleife – ideal, wenn die Iterationsanzahl bekannt ist.while-Schleife – führt aus, solange eine Bedingung wahr bleibt.do…while-Schleife – garantiert mindestens eine Ausführung, bevor die Bedingung getestet wird.
Während die for-Schleife in einem vorherigen Tutorial behandelt wurde, konzentriert sich dieser Artikel auf die while- und do…while-Schleifen, detailliert Syntax, Ausführungsfluss, häufige Fallstricke und reale Anwendungsfälle.
C++ while-Schleife
Die Syntax einer while-Schleife ist einfach:
while (condition)
{
// body of the loop
}
Die Schleife wertet condition vor jeder Iteration aus:
- Wenn
conditiontrueist, läuft der Schleifenkörper. - Die Bedingung wird nach Abschluss des Körpers erneut ausgewertet.
- Der Prozess wiederholt sich, bis
conditionfalsewird, woraufhin die Schleife beendet wird.
Für tiefere Einblicke in C++-relationale und logische Operatoren verweisen wir auf den C++ Relationale und Logische Operatoren-Leitfaden.
Flussdiagramm einer while-Schleife

Beispiel 1: Zahlen von 1 bis 5 anzeigen
// C++ Programm zur Ausgabe der Zahlen 1 bis 5
#include <iostream>
using namespace std;
int main()
{
int i = 1;
// while-Schleife von 1 bis 5
while (i <= 5)
{
cout << i << " ";
++i;
}
return 0;
}
Ausgabe
1 2 3 4 5
Unten finden Sie eine schrittweise Aufschlüsselung der Programmausführung:
| Iteration | Variable | i <= 5 | Aktion |
|---|---|---|---|
| 1. | i = 1 | true | 1 ausgegeben, i wird 2 |
| 2. | i = 2 | true | 2 ausgegeben, i wird 3 |
| 3. | i = 3 | true | 3 ausgegeben, i wird 4 |
| 4. | i = 4 | true | 4 ausgegeben, i wird 5 |
| 5. | i = 5 | true | 5 ausgegeben, i wird 6 |
| 6. | i = 6 | false | Schleife beendet |
Beispiel 2: Summe nur positiver Zahlen
// Programm zur Berechnung der Summe positiver Zahlen
// Wenn der Benutzer eine negative Zahl eingibt, endet die Schleife
// die eingegebene negative Zahl wird nicht zur Summe addiert
#include <iostream>
using namespace std;
int main()
{
int number;
int sum = 0;
// Eingabe vom Benutzer entgegennehmen
cout << "Enter a number: ";
cin >> number;
while (number >= 0)
{
// alle positiven Zahlen addieren
sum += number;
// erneut eingeben, wenn die Zahl positiv ist
cout << "Enter a number: ";
cin >> number;
}
// Summe anzeigen
cout << "\nThe sum is " << sum << endl;
return 0;
}
Ausgabe
Enter a number: 6 Enter a number: 12 Enter a number: 7 Enter a number: 0 Enter a number: -2 The sum is 25
In diesem Beispiel fordert das Programm den Benutzer wiederholt nach Zahlen auf. Solange die eingegebene Zahl nicht-negativ ist, wird sie zu sum addiert. Eine negative Eingabe signalisiert das Ende der Schleife, und die finale Summe wird angezeigt.
C++ do…while-Schleife
Die do…while-Schleife unterscheidet sich von while dadurch, dass sie ihren Körper mindestens einmal ausführt, bevor die Bedingung ausgewertet wird. Dies ist nützlich, wenn der Schleifenkörper ausgeführt werden muss, bevor die Abbruchbedingung geprüft werden kann.
Ihre Syntax ist:
do
{
// body of loop
}
while (condition);
Ausführungsfluss:
- Körper läuft.
- Bedingung wird ausgewertet.
- Wenn
true, wiederholt sich der Körper. - Prozess geht weiter, bis die Bedingung
falsewird.
Flussdiagramm einer do…while-Schleife

Beispiel 3: Zahlen von 1 bis 5 anzeigen
// C++ Programm zur Ausgabe der Zahlen 1 bis 5
#include <iostream>
using namespace std;
int main()
{
int i = 1;
// do…while-Schleife von 1 bis 5
do
{
cout << i << " ";
++i;
}
while (i <= 5);
return 0;
}
Ausgabe
1 2 3 4 5
Ausführungsschritte:
| Iteration | Variable | i <= 5 | Aktion |
|---|---|---|---|
| Initial | i = 1 | Noch nicht geprüft | 1 ausgegeben, i wird 2 |
| 1. | i = 2 | true | 2 ausgegeben, i wird 3 |
| 2. | i = 3 | true | 3 ausgegeben, i wird 4 |
| 3. | i = 4 | true | 4 ausgegeben, i wird 5 |
| 4. | i = 5 | true | 5 ausgegeben, i wird 6 |
| 5. | i = 6 | false | Schleife beendet |
Beispiel 4: Summe nur positiver Zahlen
// Programm zur Berechnung der Summe positiver Zahlen
// Wenn der Benutzer eine negative Zahl eingibt, endet die Schleife
// die eingegebene negative Zahl wird nicht zur Summe addiert
#include <iostream>
using namespace std;
int main()
{
int number = 0;
int sum = 0;
do
{
sum += number;
// Eingabe vom Benutzer entgegennehmen
cout << "Enter a number: ";
cin >> number;
}
while (number >= 0);
// Summe anzeigen
cout << "\nThe sum is " << sum << endl;
return 0;
}
Ausgabe 1
Enter a number: 6 Enter a number: 12 Enter a number: 7 Enter a number: 0 Enter a number: -2 The sum is 25
Ausgabe 2
Enter a number: -6 The sum is 0.
Wenn die erste Eingabe negativ ist, führt die Schleife einmal aus und beendet sich sofort, wodurch sum unverändert bleibt.
Endlose Schleifen
Eine endlose Schleife tritt auf, wenn die Bedingung der Schleife nie zu false ausgewertet wird. Dies kann absichtlich geschehen (z. B. ein Server, der ewig läuft) oder versehentlich (Logikfehler).
// endlose while-Schleife
while (true)
{
// body of the loop
}
Ebenso kann eine do…while-Schleife endlos sein:
int count = 1;
do
{
// body of loop
}
while (count == 1);
Solche Schleifen verbrauchen Ressourcen, bis das Programm beendet wird oder dem System der Speicher ausgeht.
for vs. while-Schleifen
Die for-Schleife eignet sich am besten, wenn die Iterationsanzahl im Voraus bekannt ist:
// Schleife wird 5 Mal iteriert
for (int i = 1; i <= 5; ++i)
{
// body of the loop
}
Im Gegensatz dazu sind while- und do…while-Schleifen ideal, wenn die Iterationsanzahl von Laufzeitdaten abhängt, wie Benutzereingaben oder das Ergebnis einer komplexen Bedingung.
Entdecken Sie weitere C++-Schleifen-Beispiele:
- C++ Programm zur Anzeige der Fibonacci-Folge
- C++ Programm zum Finden des GGT
- C++ Programm zum Finden des KGV
C Sprache
- C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung
- C++ Speicherverwaltung meistern: Experten-Einsatz von new und delete
- C++ Vererbung: Public, Protected & Private erklärt
- C++ Friend-Funktionen und Friend-Klassen: Zugriffskontrolle meistern
- C++ do‑while‑Schleife: Syntax, Praxisbeispiele und verschachtelte Schleifen
- While- vs. Do-While-Schleifen: Klare Gegenüberstellung mit praktischen Beispielen
- Java Palindrom-Zahl-Prüfer: Algorithmen mit While- und For-Schleifen
- C++ Datum & Zeit: Umfassender Leitfaden
- C++ Overloading: Funktionen & Operatoren erklärt
- C++ Datei-I/O: Lesen & Schreiben mit fstream