Buclele sunt instrucțiuni de flux de control care permit executarea repetată a codului pe baza unei condiții date.

do while bucla este o variantă a while buclă care execută blocul de cod o dată înainte de a verifica starea. Apoi va repeta bucla atâta timp cât condiția este adevărată.

Sintaxă

Iată sintaxa de bază pentru o buclă do while:

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

Rețineți că testarea condiției de terminare se face după fiecare execuție a buclei. Aceasta înseamnă că bucla va fi întotdeauna executată cel puțin o dată, chiar dacă condiția este falsă la început.

Acest lucru este în contrast cu normalul while buclă, unde condiția este testată înainte de buclă, iar executarea blocului de cod nu este garantată.

Iată o buclă de timp regulată:

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

Exemplu de buclă do while

Să vedem un exemplu de lucru:

#include <iostream>
 
int main () {
   
    int number = 1;

    do {
        std::cout << number << std::endl;
        number++;
    }
    while (number < 5);
 
    return 0;
}

Ieșire:

1
2
3
4

În acest exemplu inițializăm o variabilă întreagă number = 1. Apoi executăm în mod repetat bucla.

În interiorul buclei imprimăm variabila și mărim variabila cu una. Bucla este executată atâta timp cât number este mai mic decât 5. Prin urmare, numerele de la 1 la 4 sunt tipărite.

Exemplul 2

Iată un alt exemplu și rezultatul său:

10
#include <iostream>
 
int main () {
   
    int number = 10;

    do {
        std::cout << number << std::endl;
        number++;
    }
    while (number < 5);
 
    return 0;
}

În acest exemplu folosim același cod ca în primul exemplu. Dar acum ne inițializăm variabila cu number = 10.

Deoarece 10 nu este mai mic decât 5, starea noastră este deja falsă. Bucla va fi executată în continuare o singură dată, iar 10 este singura ieșire tipărită.

Când ar trebui să utilizați bucla Do While?

do whilebucla este un instrument excelent dacă aveți nevoie de cod pentru a fi executat în mod repetat. După cum sa menționat mai sus, doriți să utilizați această sintaxă ori de câte ori aveți nevoie de o buclă și, de asemenea, trebuie să garantați că se efectuează cel puțin o execuție a blocului de cod.

Imaginați-vă un cod ca în Exemplul 2, dar nu inițializăm variabila noastră cu o valoare codificată tare. În schimb, folosim o intrare de utilizator.

Nu putem garanta că intrarea utilizatorului este suficient de mică, dar totuși dorim să vedem cel puțin o declarație de imprimare în consola de ieșire. Acesta este un caz de utilizare perfect pentru do whilebuclă.

// Pseudo code where do while is useful:

int number = getUserInput();

do {
    std::cout << number << std::endl;
    number = someUpdateCalculation();
}
while (number < 5);