Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

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:

  1. for-Schleife – ideal, wenn die Iterationsanzahl bekannt ist.
  2. while-Schleife – führt aus, solange eine Bedingung wahr bleibt.
  3. 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:

Für tiefere Einblicke in C++-relationale und logische Operatoren verweisen wir auf den C++ Relationale und Logische Operatoren-Leitfaden.


Flussdiagramm einer while-Schleife

C++ while- und do-while-Schleifen – Wiederholungen im Code meistern

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:

IterationVariablei <= 5Aktion
1.i = 1true1 ausgegeben, i wird 2
2.i = 2true2 ausgegeben, i wird 3
3.i = 3true3 ausgegeben, i wird 4
4.i = 4true4 ausgegeben, i wird 5
5.i = 5true5 ausgegeben, i wird 6
6.i = 6falseSchleife 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:


Flussdiagramm einer do…while-Schleife

C++ while- und do-while-Schleifen – Wiederholungen im Code meistern

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:

IterationVariablei <= 5Aktion
Initiali = 1Noch nicht geprüft1 ausgegeben, i wird 2
1.i = 2true2 ausgegeben, i wird 3
2.i = 3true3 ausgegeben, i wird 4
3.i = 4true4 ausgegeben, i wird 5
4.i = 5true5 ausgegeben, i wird 6
5.i = 6falseSchleife 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 Sprache

  1. C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung
  2. C++ Speicherverwaltung meistern: Experten-Einsatz von new und delete
  3. C++ Vererbung: Public, Protected & Private erklärt
  4. C++ Friend-Funktionen und Friend-Klassen: Zugriffskontrolle meistern
  5. C++ do‑while‑Schleife: Syntax, Praxisbeispiele und verschachtelte Schleifen
  6. While- vs. Do-While-Schleifen: Klare Gegenüberstellung mit praktischen Beispielen
  7. Java Palindrom-Zahl-Prüfer: Algorithmen mit While- und For-Schleifen
  8. C++ Datum & Zeit: Umfassender Leitfaden
  9. C++ Overloading: Funktionen & Operatoren erklärt
  10. C++ Datei-I/O: Lesen & Schreiben mit fstream