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 ... whilecând blocul nu trebuie să ruleze dacă datele sunt goale (de exemplu procesarea primului element al unui vector gol). Foloseștewhileobiș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 >>.