Structura repetitivă cu test final, cunoscută în pseudocod ca 'repeta...pana cand' și în limbajele de programare ca 'do...while', este o structură de control care permite executarea unui bloc de instrucțiuni de cel puțin o dată, după care se verifică o condiție pentru a decide dacă repetiția continuă. Spre deosebire de structura cu test inițial ('cat timp' sau 'while'), unde condiția se verifică înainte de execuție, aici corpul buclei se execută mai întâi, iar apoi se evaluează condiția. Dacă condiția este falsă, bucla se reia (instrucțiunile se execută din nou); dacă condiția devine adevărată, bucla se oprește.
Aceasta este principala caracteristică: repetiția continuă 'până când' condiția devine adevărată. De exemplu, dacă vrem să citim un număr de la tastatură până când utilizatorul introduce un număr pozitiv, putem folosi 'repeta...pana cand' pentru a cere măcar o dată introducerea. În pseudocod, structura se scrie astfel:
repeta
<instrucțiuni>
pana cand <condiție>
do {
<instrucțiuni>
} while (!condiție); // deci while (<condiție falsă>)
Este important de reținut că testul se face la final, deci corpul buclei se execută întotdeauna cel puțin o dată. Aceasta este utilă în situații în care trebuie să procesăm date de intrare sau să efectuăm o acțiune înainte de a verifica o condiție, cum ar fi afișarea unui meniu de opțiuni, validarea intrărilor, sau simularea unui joc în care jucătorul acționează mai întâi. De asemenea, trebuie să avem grijă ca în interiorul buclei să modificăm variabilele care influențează condiția, altfel bucla poate deveni infinită.
În concluzie, 'repeta...pana cand' oferă o modalitate naturală de a repeta o acțiune cel puțin o dată, cu verificarea condiției de oprire la sfârșitul fiecărei iterații.
citește num
pana cand num > 10
Aceasta va citi cel puțin o dată, apoi va continua până când condiția este adevărată.
repeta
citește x
suma <- suma + x
pana cand x = 0
afișează suma
Observație: 0 se adună și el, dar nu afectează suma; bucla se oprește după adunare.
afișează 'Alege: 1-Joc, 2-Setari, 3-Iesire'
citește optiune
dacă optiune = 1 atunci 'Joaca'
altfel dacă optiune = 2 atunci 'Setari'
pana cand optiune = 3
afișează 'La revedere'
Concepte cheie: Structura repetitivă cu test final asigură executarea corpului cel puțin o dată., Condiția de oprire se verifică după fiecare iterație; bucla continuă cât timp condiția este falsă., În pseudocod se scrie 'repeta...pana cand <condiție>', iar în C++ 'do { ... } while (!condiție);', Se folosește pentru validarea intrărilor, meniuri, sau procesări care trebuie să se execute măcar o dată., Atenție la variabilele care modifică condiția pentru a evita bucle infinite.
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.