Invatare Atomica

Structura DO-WHILE

Progres lectie:
0%
🎯

Obiectivul lectiei

Dupa aceasta lectie, vei sti sa folosesti bucla careexecuta cel putin o datainainte de a verifica conditia.

Dupa aceasta lectie vei putea:

  • Sa analizezi structura repetitiva conditionata pOSterior
  • Sa explici sintaxa do-while
  • Sa deosebesti diferenta while vs do-while
  • Sa aplici exemplu: citire cu validare
  • Sa aplici exemplu: joc "ghiceste numarul"

Incearca singur!

🎯 INCEARCA

Meniu cu validare!

#include <iostream> using namespace std; int main() { int optiune; do { cout << "=== MENIU ===" << endl; cout << "1. Joaca" << endl; cout << "2. Setari" << endl; cout << "3. Iesire" << endl; cout << "Alege: "; cin >> optiune; if (optiune == 1) cout << "Jocul incepe!" << endl; else if (optiune == 2) cout << "Setari..." << endl; } while (optiune != 3); cout << "La revedere!"; return 0; }
🚀 Ruleaza pe OnlineGDB

Meniul se afiseaza cel putin o data, apoi repeta pana alegi 3!

1

Structura repetitiva conditionata posterior

Structura repetitiva conditionata posterior
DO-WHILE executa blocul prima data fara sa verifice, apoi verifica conditia la sfarsit.
Garanteaza cel putin o executie!
2

Sintaxa DO-WHILE

Sintaxa DO-WHILE
do { // instructiuni - se executa cel putin o data } while (conditie); // ATENTIE: punct si virgula la sfarsit!
3

Diferenta WHILE vs DO-WHILE

Diferenta WHILE vs DO-WHILE
WHILE DO-WHILE
Verifica inainte Verifica dupa
Poate sa nu execute deloc Executa cel putin o data
while (cond) { ... } do { ... } while (cond);
4

Exemplu: Citire cu validare

Exemplu: Citire cu validare
int nota; do { cout << "Introdu nota (1-10): "; cin >> nota; if (nota < 1 || nota > 10) cout << "Nota invalida! Reincearca." << endl; } while (nota < 1 || nota > 10); cout << "Nota ta este: " << nota;
5

Exemplu: Joc "Ghiceste numarul"

Exemplu: Joc "Ghiceste numarul"

Jocurile de tip "ghiceste numarul" sunt un exemplu clasic de DO-WHILE. Jucatorul trebuie sa faca cel putin o incercare inainte de a verifica daca a ghicit corect.

int secret = 7, ghicire; do { cout << "Ghiceste numarul (1-10): "; cin >> ghicire; if (ghicire < secret) cout << "Prea mic!" << endl; else if (ghicire > secret) cout << "Prea mare!" << endl; } while (ghicire != secret); cout << "Felicitari! Ai ghicit!";

Observa ca jucatorul introduce cel putin o valoare inainte de a se verifica daca a ghicit. Daca am folosi WHILE, ar trebui sa initializam variabila ghicire cu o valoare "gresita" inainte de bucla, ceea ce ar fi mai putin elegant.

6

💡 Cand folosim DO-WHILE?

💡 Cand folosim DO-WHILE?

Regula de aur: foloseste DO-WHILE cand actiunea trebuie executata cel putin o data, indiferent de conditie. Iata situatiile cele mai frecvente:

  • Meniuri interactive - meniul trebuie afisat cel putin o data ca utilizatorul sa poata alege
  • Validare input - cere utilizatorului sa introduca date pana cand sunt corecte
  • Jocuri "vrei sa mai joci?" - jocul trebuie jucat cel putin o runda
  • Procesare cifre - numarul 0 are cel putin o cifra, deci trebuie procesata
  • Orice situatie unde actiunea trebuie facuta cel putin o data inainte de verificare
7

⚠ Greseala comuna

⚠ Greseala comuna

Cea mai frecventa greseala este uitarea punctului si virgulei dupa while(conditie). Spre deosebire de structura WHILE clasica, DO-WHILE se termina cu ; dupa paranteza conditiei:

// GRESIT - lipseste ; la sfarsit do { ... } while (x > 0) // CORECT - punct si virgula obligatoriu do { ... } while (x > 0);

Alta greseala frecventa: folosirea DO-WHILE cand conditia trebuie verificata inainte. De exemplu, daca vrei sa parcurgi o lista care poate fi goala, foloseste WHILE, nu DO-WHILE.

Exercitii practice

Exercitiul 1 (Nivel minim) - Programare

Cerinta: Cere utilizatorului sa introduca parola "secret123". Repeta cererea pana cand parola e corecta, apoi afiseaza "Acces permis!".

Exercitiul 2 (Nivel standard) - Programare

Cerinta: Creeaza un meniu cu optiuni: 1-Salut, 2-Ora, 3-Iesire. Afiseaza mesajul corespunzator si repeta meniul pana cand utilizatorul alege 3.

Exercitiul 3 (Nivel performanta) - Programare

Cerinta: Citeste un numar intreg pozitiv si calculeaza suma cifrelor sale folosind do-while.

Exercitiul 4 (Nivel performanta) - Programare

Cerinta: Citeste un numar intreg pozitiv si afiseaza numarul cu cifrele inversate.

Exercitiul 5 (Nivel performanta) - Programare

Cerinta: Creeaza un bancomat simplu cu meniu interactiv. Urmeaza pasii:

Ce ai invatat astazi

  • Ai invatat structura repetitiva conditionata posterior
  • Acum stii sintaxa do-while
  • Ai descoperit diferenta while vs do-while
  • Ai explorat exemplu: citire cu validare
  • Ai inteles exemplu: joc "ghiceste numarul"
  • Ai invatat 💡 cand folosim do-while
  • Acum stii ⚠ greseala comuna

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →