Die Schleifen for, while und do-while in C und C++
In dieser Lektion wiederholst du Aufgaben mit den Schleifen for, while und do-while und steuerst sie mit break und continue.
Einführung
Schleifen führen denselben Codeblock mehrmals aus. for eignet sich, wenn die Anzahl der Wiederholungen feststeht, while wiederholt, solange die Bedingung wahr ist, und do-while führt den Rumpf immer mindestens einmal aus, bevor die Bedingung geprüft wird.
Wichtige Punkte
- Schalte die Compiler-Warnungen (compiler warnings) ein und behebe alle.
- Verstehe den Datentyp und die Lebensdauer (lifetime) jedes Werts genau.
- Prüfe immer die Eingabedaten und die Grenzen von Array-Indizes.
So funktioniert es
Klicke auf Schritt, um die Schleife Zug für Zug auszuführen. Beobachte, wie die Bedingung geprüft wird, der Rumpf läuft und die Ablauftabelle Zeile für Zeile wächst.
Codebeispiele in C und C++
#include <stdio.h>
int main(void) {
/* for: start; condition; step */
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
printf("\n");
/* while: repeat as long as the condition holds */
int n = 20;
int steps = 0;
while (n > 1) {
n /= 2;
steps++;
}
printf("halved %d times\n", steps);
/* do-while: the body runs at least once */
int tries = 0;
do {
tries++;
} while (tries < 3);
printf("tries = %d\n", tries);
/* break leaves the loop, continue skips to the next round */
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) continue;
if (i > 7) break;
printf("%d ", i);
}
printf("\n");
return 0;
}
1 2 3 4 5
halved 4 times
tries = 3
1 3 5 7
#include <iostream>
#include <vector>
int main() {
// for: start; condition; step
for (int i = 1; i <= 5; i++) {
std::cout << i << ' ';
}
std::cout << '\n';
// while: repeat as long as the condition holds
int n = 20;
int steps = 0;
while (n > 1) {
n /= 2;
steps++;
}
std::cout << "halved " << steps << " times\n";
// do-while: the body runs at least once
int tries = 0;
do {
tries++;
} while (tries < 3);
std::cout << "tries = " << tries << '\n';
// range-based for visits every element of a container
std::vector<int> values{1, 3, 5, 7};
int sum = 0;
for (int value : values) {
sum += value;
}
std::cout << "sum = " << sum << '\n';
}
1 2 3 4 5
halved 4 times
tries = 3
sum = 16
C und C++ im Vergleich
Der Kopf einer for-Schleife besteht aus drei Teilen: Startwert, Wiederholungsbedingung und Schrittweite. Die Anweisung break verlässt die Schleife sofort, continue überspringt den Rest des aktuellen Durchlaufs und macht mit dem nächsten weiter. C++ bietet zusätzlich die bereichsbasierte for-Schleife (range-based for), mit der du alle Elemente eines Containers ohne Index durchläufst.
C verwendet kleine prozedurale Funktionen und zeigt offen, wie Daten im Speicher dargestellt werden.
C++ erlaubt weiterhin Arbeit auf niedriger Ebene, ergänzt aber Bibliothekstypen und sicherere Abstraktionen.
Übungen zur Vertiefung
Führe beide Versionen aus und ändere dann den Code, um zu beobachten, welche Sicherheit jede Sprache bietet.
- Teste ungültige Eingaben und Grenzwerte.
- Kompiliere mit den Flags -Wall -Wextra -Wpedantic, um zusätzliche Warnungen einzuschalten.
- Lagere gemeinsame Deklarationen in eine Header-Datei und die Implementierung in eine eigene Datei aus.
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
- Sum of Odd Numbers Add every odd number up to a limit. Einfach
- Countdown to Liftoff Count down from a number and end with Liftoff! Einfach
- Multiplication Table Row List the first multiples of a number. Einfach