Instructiunea while

Un alt mod de a scrie o secventa de cod care se repeta de mai multe ori este cu ajutorul instructiunii while. Spre deosebire de instructiunea for care este impartita in mai multe sectiuni diferite (de initializare, terminare si incrementare), while are o singura sectiune in care se testeaza o expresie booleana. Atata timp cat expresia are valoarea true se va executa codul din interiorul blocului while. Cand expresia are valoare false bucla se incheie si codul continua cu urmatoarea instructiune de dupa while.

Daca de exemplu am vrea sa afisam numerele de la 1 la 10 folosind un while ar trebui sa scriem urmatorul cod:


int i = 1;						// initializarea contorului
while(i < 11) {                 // atata timp cat i este mai mic decat 11
  System.out.println(i);        // il afisam pe i
  i++;                          // il incrementam pe i
}

Acelasi lucru cu for arata astfel:


for (int i = 1; i <= 10; i++) {
  System.out.println(i);
}

Se observa faptul ca si in while se regasesc toate sectiunile din for doar ca ele sunt separate in mai multe locuri prin cod fata de for unde toate se regasesc grupate pe aceeasi linie. Ca si regula cand folosim for vs cand folosim while cand stim inainte de a incepe bucla cate itereatii avem de facut atunci folosim for iar cand nu stim folosim while. Sau daca descrierea problemei pe care o avem de rezolvat are forma "Pentru fiecare ..." (ex: Pentru fiecare numar din sir; Pentru fiecare numar de la 1 la 10) atunci folosim for iar daca descrierea problemei are forma "Atata timp cat ..." (ex: Atata timp cat nu am ajuns la sfarsitul fisierului; Atata timp cat sirul nu este ordonat) atunci folosim while

Daca vrem sa realizam o bucla infinita cu while folosim constructia while(true)


while(true) {
  // bucla infinita
}

Instructiunile break si continue au aceeasi functionalitate si aici ca la for

Este momentul sa arati ce ai invatat. Din acest moment ai suficiente cunostinte pentru a rezolva testele BA1-BA8 si EA1-EA7, Succes!!!