Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Schleifen in C++: while, do-while, for und verschachtelte Schleifen – Ein Tutorial mit Beispielen aus der Praxis

Lerne die verschiedenen Schleifenarten in C++ kennen: while, do-while, for und verschachtelte Schleifen. Mit praxisnahen Beispielen, wie der Berechnung von Fahrstrecken, Gehaltsverdopplung und durchschnittlichem Niederschlag – perfekt für Studierende der Informatik.

Schleifen in C++ while-Schleife do-while-Schleife for-Schleife verschachtelte Schleifen C++ Programmierung lernen Eingabevalidierung C++ Programmieraufgaben Informatik C++ Tutorial für Anfänger Berechnung Fahrstrecke C++ Gehaltsverdopplung Programm Niederschlagsberechnung C++ C++ Übungen Studium Schleifen Beispiele C++ C++ Programmieren üben Informatik 1081 Assignment

Einführung in Schleifen in C++

Schleifen sind ein grundlegendes Konzept in der Programmierung. Sie ermöglichen es, einen Codeblock wiederholt auszuführen, bis eine bestimmte Bedingung erfüllt ist. In diesem Tutorial lernst du die verschiedenen Schleifenarten in C++ kennen: while, do-while, for und verschachtelte Schleifen. Wir verwenden praxisnahe Beispiele, wie die Berechnung von Fahrstrecken, die Verdopplung eines Gehalts und die durchschnittliche Niederschlagsmenge – ähnlich wie in typischen Programmieraufgaben für Studierende. Dabei orientieren wir uns an aktuellen Trends: Stell dir vor, du berechnest die zurückgelegte Strecke eines E-Scooters in einer Stadt wie Berlin oder das exponentielle Wachstum von Kryptowährungen – genau solche Konzepte stecken hinter den Aufgaben.

Die while-Schleife

Die while-Schleife wiederholt einen Codeblock, solange eine Bedingung wahr ist. Die Bedingung wird vor jedem Durchlauf geprüft. Das ist nützlich, wenn du nicht genau weißt, wie oft die Schleife laufen muss – zum Beispiel bei der Eingabevalidierung.

Beispiel: Fahrstrecke mit while-Schleife

Wir schreiben ein Programm, das die Geschwindigkeit eines Fahrzeugs (in mph) und die Fahrzeit (in Stunden) abfragt. Negative Werte für Geschwindigkeit und Werte unter 1 für die Zeit werden nicht akzeptiert. Die Schleife wiederholt die Abfrage, bis gültige Daten eingegeben werden. Danach wird für jede Stunde die zurückgelegte Strecke ausgegeben.

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double speed;
    int hours;

    // Eingabevalidierung mit while
    cout << "What is the speed of the vehicle in mph? ";
    cin >> speed;
    while (speed < 0) {
        cout << "Geschwindigkeit darf nicht negativ sein. Bitte erneut eingeben: ";
        cin >> speed;
    }

    cout << "How many hours has it traveled? ";
    cin >> hours;
    while (hours < 1) {
        cout << "Stunden müssen mindestens 1 sein. Bitte erneut eingeben: ";
        cin >> hours;
    }

    // Ausgabe der Tabelle
    cout << "Hour   Distance Traveled" << endl;
    cout << "-------------------------" << endl;
    int hour = 1;
    while (hour <= hours) {
        double distance = speed * hour;
        cout << setw(4) << hour << "   " << distance << endl;
        hour++;
    }

    return 0;
}

Dieses Beispiel zeigt, wie du mit einer while-Schleife eine Eingabevalidierung durchführst und eine Tabelle ausgibst. Die Schleife läuft, bis die Bedingung hour <= hours nicht mehr erfüllt ist. Stell dir vor, du berechnest die zurückgelegte Strecke eines autonomen Fahrzeugs – die while-Schleife könnte die Daten für jede Stunde der Fahrt sammeln.

Die do-while-Schleife

Die do-while-Schleife ähnelt der while-Schleife, aber die Bedingung wird nach jedem Durchlauf geprüft. Das bedeutet, dass der Codeblock mindestens einmal ausgeführt wird. Das ist ideal für Menüs oder Eingabevalidierungen, bei denen der Benutzer mindestens eine Eingabe machen soll.

Beispiel: Fahrstrecke mit do-while-Schleife

Das gleiche Programm wie oben, aber mit do-while für die Eingabevalidierung. Der Codeblock wird zuerst ausgeführt, dann wird geprüft, ob die Eingabe gültig ist.

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double speed;
    int hours;

    // Eingabevalidierung mit do-while
    do {
        cout << "What is the speed of the vehicle in mph? ";
        cin >> speed;
        if (speed < 0) cout << "Ungültige Geschwindigkeit. ";
    } while (speed < 0);

    do {
        cout << "How many hours has it traveled? ";
        cin >> hours;
        if (hours < 1) cout << "Ungültige Stundenzahl. ";
    } while (hours < 1);

    // Ausgabe der Tabelle
    cout << "Hour   Distance Traveled" << endl;
    cout << "-------------------------" << endl;
    int hour = 1;
    do {
        double distance = speed * hour;
        cout << setw(4) << hour << "   " << distance << endl;
        hour++;
    } while (hour <= hours);

    return 0;
}

Die do-while-Schleife stellt sicher, dass der Benutzer mindestens einmal aufgefordert wird. Das ist besonders nützlich in interaktiven Programmen, wie zum Beispiel bei der Steuerung eines Smart-Home-Geräts, wo der Benutzer eine Aktion bestätigen muss.

Die for-Schleife

Die for-Schleife wird verwendet, wenn die Anzahl der Durchläufe im Voraus bekannt ist. Sie besteht aus Initialisierung, Bedingung und Inkrementierung. Sie ist ideal für Zählschleifen, wie bei der Berechnung von Zinseszinsen oder der Gehaltsverdopplung.

Beispiel: Gehaltsverdopplung mit for-Schleife

Ein Programm berechnet das Gehalt über eine bestimmte Anzahl von Tagen, wenn das Gehalt am ersten Tag 1 Penny beträgt und sich jeden Tag verdoppelt. Die Eingabe der Tage wird mit einer do-while-Schleife validiert. Die Berechnung und Ausgabe erfolgt mit einer for-Schleife.

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int days;

    // Eingabevalidierung mit do-while
    do {
        cout << "For how many days will the pay double? ";
        cin >> days;
        if (days < 1) cout << "Anzahl der Tage muss mindestens 1 sein. ";
    } while (days < 1);

    cout << "Day   Total Pay" << endl;
    cout << "---------------" << endl;

    double totalPay = 0.0;
    double dailyPay = 0.01; // 1 Penny in Dollar

    for (int day = 1; day <= days; day++) {
        totalPay += dailyPay;
        cout << setw(3) << day << "   $" << fixed << setprecision(2) << dailyPay << endl;
        dailyPay *= 2;
    }

    cout << "---------------" << endl;
    cout << "Total $" << totalPay << endl;

    return 0;
}

Dieses Beispiel veranschaulicht das exponentielle Wachstum – ähnlich wie bei Kryptowährungen, deren Wert sich unter bestimmten Bedingungen verdoppeln kann. Die for-Schleife ist perfekt, um solche Berechnungen mit Zinseszins durchzuführen.

Verschachtelte Schleifen

Verschachtelte Schleifen sind Schleifen innerhalb von Schleifen. Sie werden verwendet, um mehrdimensionale Daten zu verarbeiten, wie zum Beispiel bei der Niederschlagsberechnung über mehrere Jahre und Monate.

Beispiel: Durchschnittlicher Niederschlag mit verschachtelten for-Schleifen

Das Programm fragt die Anzahl der Jahre ab und sammelt für jeden Monat die Niederschlagsmenge in Inches. Die Anzahl der Monate wird als Konstante definiert, sodass das Programm leicht an einen anderen Kalender angepasst werden kann (z.B. 4 Monate für Tests).

#include <iostream>
using namespace std;

int main() {
    const int MONTHS = 12; // Kann auf 4 geändert werden
    int years;
    double totalRainfall = 0.0;

    cout << "This program will calculate average rainfall over a period of years." << endl;
    cout << "How many years do you wish to average? ";
    cin >> years;

    for (int year = 1; year <= years; year++) {
        cout << "Year " << year << endl;
        for (int month = 1; month <= MONTHS; month++) {
            double rainfall;
            cout << "Number of inches of rain for month " << month << "? ";
            cin >> rainfall;
            totalRainfall += rainfall;
        }
    }

    int totalMonths = years * MONTHS;
    double average = totalRainfall / totalMonths;

    cout << "Over a period of " << totalMonths << " months, " << totalRainfall << " inches of rain fell." << endl;
    cout << "Average monthly rainfall for the period is " << average << " inches." << endl;

    return 0;
}

Verschachtelte Schleifen sind in vielen Bereichen nützlich, zum Beispiel bei der Datenanalyse von Wetterdaten oder beim Durchlaufen von Tabellenkalkulationen. Stell dir vor, du analysierst die Niederschlagsmengen für verschiedene Regionen – verschachtelte Schleifen helfen dir, die Daten strukturiert zu erfassen.

Zusammenfassung und beste Praktiken

In diesem Tutorial hast du die vier wichtigsten Schleifenarten in C++ kennengelernt: while, do-while, for und verschachtelte Schleifen. Jede hat ihre Stärken: Die while-Schleife eignet sich für Bedingungen, die vor dem Durchlauf geprüft werden; die do-while-Schleife für mindestens eine Ausführung; die for-Schleife für Zählschleifen; und verschachtelte Schleifen für mehrdimensionale Daten. Achte immer auf korrekte Eingabevalidierung, um Endlosschleifen zu vermeiden. Diese Konzepte sind grundlegend für die Programmierung in C++ und werden in vielen Informatik-Aufgaben und Übungen für Studierende verwendet. Mit diesen Werkzeugen kannst du komplexe Berechnungen durchführen, wie sie in der Datenanalyse, Spieleentwicklung oder Finanzmodellierung vorkommen.

Probier die Beispiele selbst aus und experimentiere mit verschiedenen Werten. Viel Erfolg beim Programmieren!