Teoriechevron_rightInstrucțiunea DO-WHILE

Teorie: Instrucțiunea DO-WHILE

Structura repetitivă cu test final. Execută codul cel puțin o dată. Comparație cu instrucțiunea while.

Nivel: Începătorschedule 20 min

updateInstrucțiunea repetitivă DO WHILE

Instrucțiunea do-while este o structură repetitivă cu test final. Spre deosebire de while sau for (care verifică condiția înainte de a executa ceva), instrucțiunea do-while garantează că blocul de cod se va executa cel puțin o dată, deoarece condiția este evaluată la finalul repetiției.

code1. Sintaxa de bază

do {
  // instrucțiuni care se execută cel puțin o dată
} while (condiție); // Nu uitați punctul și virgula la final!

Cea mai comună utilizare a acestei structuri este citirea cu validare. De exemplu, când vrei să ceri utilizatorului să introducă un număr pozitiv și repeți întrebarea până când dă o valoare corectă.

// Exemplu: Citirea cu validare a unui număr natural STRICT pozitivint n;
do {
  cout << "Introduceți un număr pozitiv: ";
  cin >> n;
} while (n <= 0); // Repetăm CÂT TIMP numărul este greșit (<= 0)

cout << "Ați introdus numărul corect: " << n;

compare_arrows2. Comparație: WHILE vs DO-WHILE

Diferența majoră se observă atunci când condiția este falsă chiar de la început.

Cu WHILE

int x = 10;
while (x < 5) {
  cout << "Hello!";
}

Rezultat: Nu afișează absolut nimic, pentru că 10 nu este mai mic decât 5.

Cu DO-WHILE

int x = 10;
do {
  cout << "Hello!";
} while (x < 5);

Rezultat: Afișează "Hello!" o singură dată, după care verifică condiția (10 < 5 este Fals) și se oprește.

warningCapcană la Bacalaureat

  • Punct și virgulă obligatoriu: Mulți elevi uită să pună ; după while(condiție) în structura do-while. Este o eroare de sintaxă (compilatorul va da eroare).
  • Cazul lui zero: În lecția precedentă am văzut că algoritmul de numărare a cifrelor cu while(n > 0) dă greș dacă numărul e chiar 0 (va zice că are 0 cifre, ceea ce e fals, 0 are o cifră). Acesta este cazul ideal în care rescriem cu do-while, astfel încât să extragă și să numere cifra "0" cel puțin o dată, abia apoi să verifice dacă mai sunt cifre.
syncSe încarcă statusul...