Instrucțiunea for în Java
Instrucțiunea for în Java

Ce știi despre instrucțiunea for? Dacă nu-ți spune nimic și pare că n-are „nothing for you”, atunci hai să-ți explic un pic ce rol are, din ce e formată și la ce se folosește cel mai des (sau pentru ce anume).

În primul rând, trebuie să știi că este o buclă, adică un ciclu repetitiv, o iterație, care se repetă cât timp se îndeplinește condiția. Are un rol asemănător cu cel al instrucțiunii while. Apropo, îți recomand să lecturezi articolul „Instrucțiunea while în Java”.


Structură

Instrucțiunea for este formată din 3 componente, și anume:

  • inițializarea, adică valoarea de la care pornește totul în ciclul for
  • condiția, cu ajutorul căreia se-ntâmplă de toate cât timp este adevărată
  • incrementarea sau decrementarea, care joacă un rol important la iterație (fără incrementare sau decrementare, condiția nu s-ar mai schimba și atunci ar fi o instrucțiune statică precum if sau switch)

Structura instrucțiunii for:

for (inițializare; condiție; incrementare/decrementare)

Exemplu în Java:

1| for (int i = 0; i <= 5; i++) {
2|     System.out.println(i);
3| } 

Ce crezi că va afișa programul anterior? Numerele de la 0 la 5, unul sub altul…


Cum funcționează instrucțiunea for?

Chiar dacă am făcut un liceu de Mate-Info, nu pricepeam întotdeauna cum funcționează instrucțiunea for. În facultate, prin anul 2 (cred), un profesor ne-a învățat cum să facem „debugging” la programe. Așa am învățat să segmentez fiecare problemă și să văd ce se-ntâmplă pas cu pas. Partea interesantă e că am făcut exerciții de felul ăsta pe foaie (inclusiv examenul a fost scris pe foaie, în fine…).

Instrucțiunea for are un punct de plecare. În exemplul nostru, am definit variabila i, dar se poate defini fain-frumos și la începutul programului. Apropo, variabila i are „viață” numai în interiorul instrucțiunii for. Este o variabilă locală. Vei învăța mai târziu ce înseamnă o variabilă globală, locală sau variabilă de clasă sau chiar instanță de variabilă… E minunat Universul Programatorilor, nu-i așa?

Din moment ce ai un punct de plecare (care se presupune a fi bun), trecem mai departe la condiție. Nu am văzut în practică să se pună un punct de plecare (inițializare) care să nu se „pupe” cu condiția. De obicei, dacă ai un for, înseamnă că vrei să se-ntâmple ceva cu el, mai ales că ai și cod în interiorul lui. Eventual, dacă nu trebuie, atunci acel for va fi „atacat” de altcineva, dar în mod normal e făcut să fie „mâncat”, nu evitat.

Condiția te ajută foarte mult. De ce? Cât timp este adevărată (la fel ca în cazul instrucțiunii while), codul din interiorul lui for va fi executat.

Cum ieșim din for? Aici intervine incrementarea sau decrementarea (depinde de situație). Dacă n-ar fi componenta asta cu incrementare/decrementare, instrucțiunea ar fi una statică și n-ar mai intra la categoria cicluri sau bucle repetitive.

E musai să fie o incrementare sau o decrementare pentru ca o instrucțiune să fie o buclă repetitivă? Nu neapărat, dar nu cred că vrea nimeni să aibă o buclă infinită. De exemplu, dacă nu pui nimic în interiorul lui for, ci lași doar punctul și virgula (elemente care nu trebuie să lipsească niciodată), atunci instrucțiunea va rula la infinit și îți poți lua „adio” de la program… Exemplu: for (;;). Este 100% o instrucțiune corectă, dar eficientă în 0,1% din cazuri (sau 100% dacă vrei ca programul să ruleze la nesfârșit).

De asemenea, poți evita elementul de inițializare sau să pui mai multe variabile la inițializare. Exemplu:

  • for (; i < 4; i++)
  • for (i = 0, j = 0; i < 5; i++)

Instrucțiunile continue și break

Probabil că ai întâlnit în articolul „Instrucțiunea switch în Java” pe break și pe continue. Foarte probabil doar pe break. Ce face instrucțiunea break? Are rolul de a întrerupe programul. Dacă vezi un break în interiorul instrucțiunii for (de obicei vezi și un if), să știi că are rolul de a trimite pe toată lumea acasă, adică de a ieși din for.

În schimb, dacă vezi instrucțiunea continue (care stă tot pe lângă un if), trebuie să iei în considerare faptul că se trece mai departe, adică se continuă și nu se mai afișează ce trebuia să se afișeze. Astfel, se trece la iterația următoare (dar în niciun caz nu se iese din for).

Exemplu cu instrucțiunea continue:

1| for (int i = 0; i <= 4; i++) {
2|     if (i == 2) {
3|         continue;
4|     }
5|     System.out.println(i);
6| }

Ce se întâmplă în acest progrămel? Se afișează valoarea lui i, dar când i este 2, atunci se trece mai departe. Așadar, programul afișează cifrele 0, 1, 3 și 4.

Exemplu cu instrucțiunea break:

1| for (int i = 1; i <= 3; i++) {
2|     if (i == 2) {
3|         break;
4|     }
5|     System.out.println(i);
6| }

Ce crezi că va afișa programul anterior? Cifra 1. E destul, nu-i așa? Păi dacă în acel if avem break, atunci împachetăm bagajele și ieșim din for.


Instrucțiunea for

Cum ți se pare instrucțiunea for? Se folosește foarte des mai ales când știm de câte ori trebuie să ruleze (sau să rulăm) programul.

Ține minte că este formată din 3 componente (inițilizare, condiție, incrementare/decrementare)! Vei avea mare nevoie de instrucțiunea for în viața de programator. Fiți prieteni buni!

Învață să fii profesionist!

By projava

#JAVA

Abonează-te
Primește notificări pentru
guest
0 Comentarii
Păreri...
Vezi toate comentariile