C/C++-Grundlagen

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++

C
Code ausführen →
main.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;
}
Ergebnis der Ausführung
1 2 3 4 5 
halved 4 times
tries = 3
1 3 5 7
C++
Code ausführen →
main.cpp
#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';
}
Ergebnis der Ausführung
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

C verwendet kleine prozedurale Funktionen und zeigt offen, wie Daten im Speicher dargestellt werden.

C++

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.

Alle Challenges