În privinta polivalentei, iteratiile REPEAT-UNTIL sunt aproape similare iteratiilor WHILE. Exista multe situatii în care cele doua structuri de iteratie "lucreaza" identic, alegerea uneia dintre structuri ramânând o problema personala, de preferinta. Exista însa si situatii în care numai una din aceste structuri trebuie folosita.
Priviti exemplul urmator. Analizati si rezultatele executiei programului. Ce observati ?
Rezultatele executiei programului
|
Asemenea bucla este o structura de control care întâi executa (actioneaza) si dupa aceea pune întrebari (sum<12). Corpul buclei (enunturile dintre cuvintele cheie REPEAT-UNTIL) este executat pâna când o expresie booleana (sum<12) asociata devine true. Din moment ce testul de iesire din bucla este la sfârsitul buclei si nu la început, structura REPEAT este executata cel putin o data, spre deosebire de bucla WHILE care poate sa nu fie executata niciodata. Diagrama de sintaxa a structurii REPEAT-UNTIL este ilustrata mai jos.
![]()
|
Remarci:
|
Bucla din exemplul urmator va determina ca procedura aga sa fie executata o data,
REPEAT aga UNTIL true
iar bucla urmatoare va determina ca procedura aga sa fie executata întotdeauna (sau cel putin cât o veti "lasa").
REPEAT aga UNTIL false
![]() |
Observatie. Nici unui programator nu-i va place sa foloseasca un true sau false explicit, dar orice expresie booleana trebuie, în schimb evaluata la una din aceste valori. Astfel, daca o bucla WHILE sau REPEAT se executa o data sau tot timpul, în loc sa se execute de un numar de ori urmarit, prevazut, locul unde trebuie sa privim este expresia booleana care controleaza bucla. |
|
Remarca. Reluam observatia facuta la ciclul WHILE în privinta mecanismelor break si continue; break determina parasirea neconditionata a ciclului, iar continue impune reluarea sa. Ambele pot fi folosite si într-un ciclu REPEAT-UNTIL. |