Schleifen in C++: for, while, do-while
Lernen Sie Schleifen in C++ mit for, while und do-while zur Steuerung wiederholter Abläufe und Programmflüsse.
In Programmiersprachen ermöglichen Schleifen (loops) die wiederholte Ausführung eines bestimmten Vorgangs.
In C++ sind die am häufigsten verwendeten Schleifenkonstrukte for, while und do-while.
Schleifen werden für wiederkehrende Aufgaben verwendet, wie das Durchlaufen von Arrays, Berechnungen oder das Einlesen von Benutzereingaben.
1. for-Schleife
Die for-Schleife wird am häufigsten verwendet, wenn die Anzahl der Wiederholungen bekannt ist.
Sie besteht aus drei Teilen: Initialisierung, Bedingung und Inkrement/Dekrement.
for (Initialisierung; Bedingung; Inkrement) {
// Wiederholte Anweisungen
}
Beispiel:
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; i++) {
cout << "Zahl: " << i << endl;
}
return 0;
}
Ausgabe:
Zahl: 1
Zahl: 2
Zahl: 3
Zahl: 4
Zahl: 5
2. while-Schleife
Die while-Schleife wird ausgeführt, solange die Bedingung wahr ist.
Die Bedingung wird am Anfang jeder Iteration überprüft, daher wird die Schleife nicht ausgeführt, wenn sie von Anfang an falsch ist.
int zahl = 1;
while (zahl <= 5) {
cout << "Zahl: " << zahl << endl;
zahl++;
}
Dieses Beispiel erzeugt dasselbe Ergebnis wie die for-Schleife, ist aber flexibler.
Sie wird häufig verwendet, wenn die Anzahl der Wiederholungen nicht im Voraus bekannt ist (z. B. bei Benutzereingaben).
3. do-while-Schleife
In einer do-while-Schleife wird die Bedingung am Ende überprüft, sodass der Schleifenblock mindestens einmal ausgeführt wird.
int zahl = 1;
do {
cout << "Zahl: " << zahl << endl;
zahl++;
} while (zahl <= 5);
Die Ausgabe zeigt erneut die Zahlen von 1 bis 5. Da die Bedingung am Ende überprüft wird, wird die erste Iteration immer ausgeführt, unabhängig von der Bedingung.
4. Endlosschleifen
Wenn die Bedingung einer Schleife niemals false wird, läuft sie unendlich weiter.
Endlosschleifen werden normalerweise mit break oder return beendet.
while (true) {
cout << "Diese Nachricht wird ständig ausgegeben." << endl;
break; // Beendet die Endlosschleife
}
Hinweis: Endlosschleifen sollten sorgfältig verwendet werden, da das Programm sonst nie endet.
5. break- und continue-Schlüsselwörter
Zwei spezielle Anweisungen werden verwendet, um den Schleifenfluss zu steuern:
- break: Beendet die Schleife vollständig.
- continue: Überspringt die aktuelle Iteration und fährt mit der nächsten fort.
for (int i = 1; i <= 10; i++) {
if (i == 5)
continue; // Überspringt 5
if (i == 8)
break; // Beendet die Schleife bei 8
cout << i << " ";
}
Ausgabe:
1 2 3 4 6 7
6. Verschachtelte Schleifen (Nested Loops)
Eine Schleife kann innerhalb einer anderen Schleife definiert werden. Diese Struktur ist besonders nützlich bei der Arbeit mit Tabellen, Matrizen oder mehrdimensionalen Daten.
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 4; j++) {
cout << "(" << i << "," << j << ") ";
}
cout << endl;
}
return 0;
}
Ausgabe:
(1,1) (1,2) (1,3) (1,4)
(2,1) (2,2) (2,3) (2,4)
(3,1) (3,2) (3,3) (3,4)
Hier stellt die äußere Schleife (i) die Zeilen dar, während die innere Schleife (j) die Spalten darstellt.
Diese Struktur ist sehr nützlich beim Arbeiten mit mehrdimensionalen Arrays.
7. Beispielanwendung: Einmaleins-Tabelle
Eine der bekanntesten Anwendungen verschachtelter for-Schleifen ist die Multiplikationstabelle.
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
cout.width(4);
cout << i * j;
}
cout << endl;
}
return 0;
}
Ausgabe:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
8. while- und do-while mit Benutzereingabe
Schleifen können auch verwendet werden, um Benutzereingaben zu wiederholen, bis eine gültige Eingabe erfolgt.
#include <iostream>
using namespace std;
int main() {
int zahl;
do {
cout << "Geben Sie eine positive Zahl ein: ";
cin >> zahl;
} while (zahl <= 0);
cout << "Eingegebene Zahl: " << zahl << endl;
return 0;
}
Wenn der Benutzer eine negative Zahl eingibt, wiederholt sich die Schleife; bei einer positiven Zahl endet sie.
9. TL;DR
for→ wird verwendet, wenn die Anzahl der Wiederholungen bekannt ist.while→ läuft, solange die Bedingung wahr ist.do-while→ wird mindestens einmal ausgeführt, dann überprüft.break→ beendet die Schleife,continue→ überspringt zur nächsten Iteration.- Verschachtelte Schleifen werden für Tabellen oder Matrixoperationen verwendet.
- Alle Beispiele können in Visual Studio 2022 oder GCC 11+ ausgeführt werden.