do … while în C++

Buclă care execută blocul cel puțin o dată și abia apoi verifică condiția.

Sintaxă
do {
    ...
} while (conditie);

Ce face do ... while

Spre deosebire de while, bucla do ... while verifică condiția după fiecare trecere. Deci blocul se execută cel puțin o dată, chiar dacă condiția este falsă de la început.

Este potrivită când trebuie să faci ceva înainte de a putea verifica: să citești o valoare și s-o validezi, să afișezi un meniu și să citești alegerea. Nu uita punctul și virgula după while (...).

Exemple

Exemplul 1: Citire până la o valoare validă

Utilizatorul introduce întâi valori greșite; bucla cere din nou până primește o notă între 1 și 10.

#include <iostream>
#include <print>

int main() {
    int nota = 0;
    do {
        std::println("Introdu nota (1-10):");
        std::cin >> nota;
    } while (nota < 1 || nota > 10);
    std::println("Nota acceptată: {}", nota);
}

Ce scrie utilizatorul (intrare)

15
0
9

Rezultat

Introdu nota (1-10):
Introdu nota (1-10):
Introdu nota (1-10):
Nota acceptată: 9

Exemplul 2: Se execută o dată chiar cu condiție falsă

#include <print>

int main() {
    int i = 100;
    do {
        std::println("do-while: i = {}", i);
    } while (i < 5);

    while (i < 5) {
        std::println("while: nu se afișează");
    }
    std::println("Gata");
}

Rezultat

do-while: i = 100
Gata

Greșeli frecvente

  • Uiți ; după while (conditie). Este eroare de compilare.
  • Folosești do ... while când blocul nu trebuie să ruleze dacă datele sunt goale (de exemplu procesarea primului element al unui vector gol). Folosește while obișnuit.

Comenzi înrudite

  • while: Repetă un bloc de cod cât timp condiția este adevărată; condiția este verificată înainte de fiecare trecere.
  • for: Bucla cu contor: repetă un bloc de cod cât timp condiția este adevărată, cu inițializare și pas scrise pe același rând.
  • break, continue: break oprește imediat bucla sau switch-ul curent; continue sare peste restul pasului curent și trece la următorul.
  • std::cin: Citește valori de la tastatură în variabile, cu operatorul >>.