Informatică, întrebare adresată de foleamihai12, 9 ani în urmă

Care este diferenta dintre structura repetitiva for si while . vreau sa fie mai explicit

Răspunsuri la întrebare

Răspuns de iZaNagi777
11

Structura repetitiva for     

Se foloseste atunci cand se cunoaste dinainte numarul de repetitii (numarul de pasi ce se vor executa). Are urmatoarea sintaxa:

for( [instructiune1] ; [conditie] ; [instructiune2] ) { [instructiune3] }

unde:

instructiune1 este o instructiune de executat la inceputconditie este o expresie care daca este evaluata ca adevarata va determina repetarea ciclului - este denumita generic conditia de repetareinstructiune2 se va executa la fiecare pas al repetariiinstructiune3 reprezinta operatia efectiva care se repeta in cadrul FOR-ului

In general, [instructiune1] este o expresie de initializare de forma $i = 1, conditia de repetare este de forma $i <= numarul de pasi si [instructiune2] este o expresie de incrementare $i++.

for( $i = 1; $i <= 10; $i++ ) { echo $i; // instructiune3 }

In limbaj natural, intructiunea se traduce prin "plecand de la $i = 1, executa operatia si creste-l pe $i cu o unitate; apoi repeta totul atat timp cat $i <= 10

De retinut: instructiunea din cadrul for-ului se executa doar daca expresia (conditia) este adevarata, deci pot exista situatii cand expresia este falsa si [instructiune3] nu se executa niciodata. Exemplu:

for( $i = 0; $i > 10; $i++ ) { echo 'Aceasta instructiune nu se executa niciodata, pentru ca valoarea ' . 'initiala a lui $i nu este mai mare decat 10'; } 7 comentarii   Citeste-le   Adauga unul

Structura repetitiva while     

Instructiunea while este folosita atunci cand nu se cunoaste dinainte numarul de executii. Are o forma mai intuitiva decat for si multe persoane o considera mai usor de folosit. Diferenta dintre while si for este aceea ca prima este mai generala si mai flexibila. Se poate chiar afirma ca for este o situatie particulara a unei structuri while. Sintaxa este urmatoarea:

while( [conditie] ) { [instructiune] }

Este probabil usor de inteles ca [instructiune] se executa atata timp cat [conditie] este adevarata. La fel ca si la for, exista posibilitatea ca instructiunea sa nu fie executata niciodata.

Mai jos este un exemplu de structura repetitiva while care are acelasi rezultat ca secventa de cod de mai sus ce foloseste for. Se poate observa ca in cazul structurii while conditia are la baza, de multe ori, o variabila initializata in exterior si modificata in interior. In cazul de mai jos, $i este modificata la fiecare executie, pana cand, la un moment dat, va fi mai mare decat 10 ceea ce va determina iesirea din bucla repetitiva.

$i = 0; while( $i <= 10 ) { echo $i; $i++; // la fiecare pas $i creste cu o unitate }

De retinut: este de datoria programatorului sa includa in blocul din structura repetitiva si codul necesar iesirii din bucla. Daca acest lucru nu se realizeaza, codul se va executa la nesfarsit. Exemplu:

$continua = true; while( $continua == true ) { echo 'La nesfarsit', '<br>'; } echo 'Aici nu se mai ajunge';

Varianta corecta a exemplului de mai sus este urmatoarea:

$continua = true; while( $continua == true ) { echo 'La nesfarsit', '<br>'; $continua = false; # modific variabila de testare a conditiei } echo 'Acum se ajunge aici'; 

Alte întrebări interesante