Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++ while en do...while Loop

C++ while en do...while Loop

In deze tutorial leren we het gebruik van while en do...while loops in C++ programmeren met behulp van enkele voorbeelden.

Bij computerprogrammering worden loops gebruikt om een ​​codeblok te herhalen.

Laten we bijvoorbeeld zeggen dat we een bericht 100 keer willen weergeven. In plaats van het printstatement 100 keer te schrijven, kunnen we een lus gebruiken.

Dat was maar een simpel voorbeeld; we kunnen veel meer efficiëntie en verfijning in onze programma's bereiken door effectief gebruik te maken van loops.

Er zijn 3 soorten lussen in C++.

  1. for lus
  2. while lus
  3. do...while lus

In de vorige zelfstudie hebben we geleerd over de C++ for-lus. Hier gaan we leren over while en do...while lussen.


C++ while-lus

De syntaxis van de while lus is:

while (condition) {
    // body of the loop
}

Hier,

  • Een while loop evalueert de condition
  • Als de condition evalueert tot true , de code in de while lus wordt uitgevoerd.
  • De condition wordt opnieuw geëvalueerd.
  • Dit proces gaat door tot de condition is false .
  • Als de condition evalueert tot false , de lus wordt beëindigd.

Voor meer informatie over de conditions , bezoek C++ relationele en logische operators.


Stroomdiagram van while-lus


Voorbeeld 1:Toon getallen van 1 tot 5

// C++ Program to print numbers from 1 to 5

#include <iostream>

using namespace std;

int main() {
    int i = 1; 

    // while loop from 1 to 5
    while (i <= 5) {
        cout << i << " ";
        ++i;
    }
    
    return 0;
}

Uitvoer

1 2 3 4 5

Hier is hoe het programma werkt.

Iteratie Variabele ik <=5 Actie
1e i = 1 true 1 is afgedrukt en i wordt verhoogd tot 2 .
2e i = 2 true 2 is afgedrukt en i wordt verhoogd tot 3 .
3e i = 3 true 3 is afgedrukt en i wordt verhoogd tot 4
4e i = 4 true 4 is afgedrukt en i wordt verhoogd tot 5 .
5e i = 5 true 5 is afgedrukt en i wordt verhoogd tot 6 .
6e i = 6 false De lus wordt beëindigd

Voorbeeld 2:Alleen som van positieve getallen

// program to find the sum of positive numbers
// if the user enters a negative number, the loop ends
// the negative number entered is not added to the sum

#include <iostream>
using namespace std;

int main() {
    int number;
    int sum = 0;

    // take input from the user
    cout << "Enter a number: ";
    cin >> number;

    while (number >= 0) {
        // add all positive numbers
        sum += number;

        // take input again if the number is positive
        cout << "Enter a number: ";
        cin >> number;
    }

    // display the sum
    cout << "\nThe sum is " << sum << endl;
    
    return 0;
}

Uitvoer

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 dit programma wordt de gebruiker gevraagd een nummer in te voeren, dat is opgeslagen in de variabele nummer .

Om de som van de getallen op te slaan, declareren we een variabele som en initialiseer het naar de waarde van 0 .

De while lus gaat door totdat de gebruiker een negatief getal invoert. Tijdens elke iteratie wordt het door de gebruiker ingevoerde getal opgeteld bij de som variabel.

Wanneer de gebruiker een negatief getal invoert, wordt de lus beëindigd. Ten slotte wordt het totale bedrag weergegeven.


C++ do...while-lus

De do...while loop is een variant van de while loop met één belangrijk verschil:de body van do...while lus wordt eenmaal uitgevoerd vóór de condition is aangevinkt.

De syntaxis is:

do {
   // body of loop;
}
while (condition);

Hier,

  • De hoofdtekst van de lus wordt eerst uitgevoerd. Dan de condition wordt geëvalueerd.
  • Als de condition evalueert tot true , de body van de lus binnen de do instructie wordt opnieuw uitgevoerd.
  • De condition wordt opnieuw geëvalueerd.
  • Als de condition evalueert tot true , de body van de lus binnen de do instructie wordt opnieuw uitgevoerd.
  • Dit proces gaat door tot de condition evalueert tot false . Dan stopt de lus.

Stroomdiagram van do...while Loop


Voorbeeld 3:Toon getallen van 1 tot 5

// C++ Program to print numbers from 1 to 5

#include <iostream>

using namespace std;

int main() {
    int i = 1; 

    // do...while loop from 1 to 5
    do {
        cout << i << " ";
        ++i;
    }
    while (i <= 5);
    
    return 0;
}

Uitvoer

1 2 3 4 5

Hier is hoe het programma werkt.

Iteratie Variabele ik <=5 Actie
  i = 1 niet aangevinkt 1 is afgedrukt en i wordt verhoogd tot 2
1e i = 2 true 2 is afgedrukt en i wordt verhoogd tot 3
2e i = 3 true 3 is afgedrukt en i wordt verhoogd tot 4
3e i = 4 true 4 is afgedrukt en i wordt verhoogd tot 5
4e i = 5 true 5 is afgedrukt en i wordt verhoogd tot 6
5e i = 6 false De lus wordt beëindigd

Voorbeeld 4:Alleen som van positieve getallen

// program to find the sum of positive numbers
// If the user enters a negative number, the loop ends
// the negative number entered is not added to the sum

#include <iostream>
using namespace std;

int main() {
    int number = 0;
    int sum = 0;

    do {
        sum += number;

        // take input from the user
        cout << "Enter a number: ";
        cin >> number;
    }
    while (number >= 0);
    
    // display the sum
    cout << "\nThe sum is " << sum << endl;
    
    return 0;
}

Uitgang 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

Hier, de do...while lus gaat door totdat de gebruiker een negatief getal invoert. Wanneer het getal negatief is, eindigt de lus; het negatieve getal wordt niet toegevoegd aan de sum variabel.

Uitgang 2

Enter a number: -6
The sum is 0.

De hoofdtekst van de do...while lus wordt slechts één keer uitgevoerd als de gebruiker een negatief getal invoert.


Oneindige while-lus

Als de condition van een lus is altijd true , loopt de lus oneindig lang (totdat het geheugen vol is). Bijvoorbeeld,

// infinite while loop
while(true) {
    // body of the loop
}

Hier is een voorbeeld van een oneindige do...while lus.

// infinite do...while loop

int count = 1;

do {
   // body of loop
} 
while(count == 1);

In de bovenstaande programma's is de condition is altijd true . Daarom zal de loop-body oneindig lang draaien.


voor vs while-lussen

Een for lus wordt meestal gebruikt als het aantal iteraties bekend is. Bijvoorbeeld,

// This loop is iterated 5 times
for (int i = 1; i <=5; ++i) {
   // body of the loop
}

Hier weten we dat de for-loop 5 keer zal worden uitgevoerd.

Echter, while en do...while loops worden meestal gebruikt wanneer het aantal iteraties onbekend is. Bijvoorbeeld,

while (condition) {
    // body of the loop
}

Bekijk deze voorbeelden voor meer informatie:

  • C++-programma om Fibonacci-reeksen weer te geven
  • C++-programma om GCD te vinden
  • C++-programma om LCM te vinden

C Taal

  1. C# if, if...else, if...else if en Nested if Statement
  2. C++ klassen en objecten
  3. C++ Geheugenbeheer:nieuw en verwijderen
  4. C++ Openbare, beschermde en privé-erfenis
  5. C++ vriend Functie en vriend Klassen
  6. C++ do...while-lus met voorbeelden
  7. Verschil tussen while en do-while:uitgelegd met voorbeelden
  8. Palindroomnummerprogramma in Java While &for Loop gebruiken
  9. C++ Datum en tijd
  10. C++ overbelasting (operator en functie)
  11. C++-bestanden en -streams