MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Cicluri

Un alt tip de construcții de control sunt ciclurile. Ciclurile permit executarea unei acțiuni de mai multe ori în funcție de anumite condiții. În limbajul Java există următoarele tipuri de cicluri:

  • for
  • while
  • do...while

Ciclul for

Ciclul for are următoarea definiție formală:

for ([inițializarea contorului]; [condiția]; [modificarea contorului]) {
   // acțiuni
}

Să luăm un exemplu standard de ciclu for:

for (int i = 1; i < 9; i++) {
   System.out.printf("Pătratul numărului %d este %d \n", i, i * i);
}

Prima parte a declarației ciclului - int i = 1 creează și inițializează contorul i. Acesta poate fi de orice tip numeric, nu neapărat int, de exemplu, float. În acest caz, înainte de începerea ciclului, contorul are valoarea 1.

A doua parte este condiția care va determina cât timp se va executa ciclul. În acest exemplu, ciclul va continua până când i va ajunge la 9.

A treia parte este incrementarea contorului. În acest caz, i++ crește contorul cu 1, dar putem și să-l scădem folosind i--.

Ciclul se va executa de 8 ori, până când valoarea lui i va deveni 9, iar la fiecare iterație, valoarea lui i crește cu 1.

Nu este obligatoriu să specificăm toate condițiile în declarația ciclului. De exemplu, putem scrie:

int i = 1;
for (;;) {
   System.out.printf("Pătratul numărului %d este %d \n", i, i * i);
}

Această structură va crea un ciclu infinit, deoarece nu are o condiție de oprire.

De asemenea, putem omite anumite părți ale ciclului:

int i = 1;
for (; i < 9;) {
   System.out.printf("Pătratul numărului %d este %d \n", i, i * i);
   i++;
}

Acest exemplu este echivalent cu primul, dar contorul este creat în afara ciclului, iar incrementarea contorului se face manual în interiorul blocului for.

Ciclul for poate inițializa și manipula mai multe variabile simultan:

int n = 10;
for (int i = 0, j = n - 1; i < j; i++, j--) {
   System.out.println(i * j);
}

Ciclul do

Ciclul do execută mai întâi codul, apoi verifică condiția în instrucțiunea while. Dacă condiția este adevărată, ciclul se repetă. De exemplu:

int j = 7;
do {
   System.out.println(j);
   j--;
} while (j > 0);

Acest cod se va executa de 7 ori, până când j devine 0. Un aspect important al ciclului do este că garantează executarea codului cel puțin o dată, chiar dacă condiția din while nu este adevărată. De exemplu:

int j = -1;
do {
   System.out.println(j);
   j--;
} while (j > 0);

Deși j este inițial mai mic decât 0, ciclul se va executa o dată.

Ciclul while

Ciclul while verifică imediat dacă o condiție este adevărată și, dacă este, execută codul ciclului:

int j = 6;
while (j > 0) {
   System.out.println(j);
   j--;
}

Operatorii continue și break

Operatorul break permite ieșirea dintr-un ciclu în orice moment, chiar dacă ciclul nu și-a terminat execuția. De exemplu:

for (int i = 0; i < 10; i++) {
   if (i == 5)
       break;
   System.out.println(i);
}

Când contorul ajunge la 5, operatorul break este activat, iar ciclul se încheie.

Pentru a continua la următoarea iterație fără a încheia ciclul, se folosește operatorul continue:

for (int i = 0; i < 10; i++) {
   if (i == 5)
       continue;
   System.out.println(i);
}

În acest caz, când valoarea lui i este 5, ciclul va sări peste acea iterație și va trece la următoarea.

← Lecția anterioară Lecția următoare →