Teoriechevron_rightInstrucțiunea FOR

Teorie: Instrucțiunea FOR

Structura repetitivă cu număr cunoscut de pași. Sintaxă, exemple de parcurgere și capcane frecvente.

Nivel: Începătorschedule 30 min

loopInstrucțiunea repetitivă FOR

Instrucțiunea for este o structură repetitivă (o buclă) folosită atunci când cunoaștem de la bun început de câte ori trebuie să se repete un anumit bloc de cod. Este cea mai des utilizată buclă pentru parcurgerea șirurilor, a vectorilor sau pentru generarea de secvențe matematice.

code1. Sintaxa de bază

for (inițializare; condiție; pas) {
  // instrucțiuni care se repetă
}

Structura are trei componente principale în interiorul parantezelor rotunde, separate prin punct și virgulă (;):

  • inițializare: se execută o singură dată, la început. Aici se declară sau se asignează valoarea inițială a contorului.
  • condiție: este evaluată la începutul fiecărui pas. Dacă este adevărată, bucla se execută. Dacă este falsă, bucla se oprește.
  • pas: se execută la finalul fiecărei iterații (repetări). Aici de obicei creștem sau scădem contorul (ex: i++, i--).
// Exemplu: Afișarea numerelor de la 1 la 5for (int i = 1; i <= 5; i++) {
  cout << i << " ";
}

Afișează: 1 2 3 4 5

swap_calls2. Variații ale instrucțiunii FOR

Parcurgerea descrescătoare

for (int i = 10; i >= 1; i--) {
  cout << i << " ";
}

Pas din 2 în 2 (Numere pare)

for (int i = 0; i <= 10; i += 2) {
  cout << i << " ";
}

Omisiuni în antet (toate cele 3 părți sunt opționale)

int i = 1;
for (; i <= 5;) {
  cout << i << " ";
  i++; // Pasul l-am mutat în corpul buclei
}

warningCapcane frecvente la Bacalaureat

  • Punct și virgulă după FOR: Dacă pui ; imediat după paranteza de la for, instrucțiunile din acolade se vor executa doar o singură dată (la final), fiindcă bucla rulează de fapt o "instrucțiune vidă" la fiecare pas.
    for(int i=1; i<=5; i++); { cout << i; } // Afișează doar "6"
  • Vizibilitatea variabilei (Scope): Dacă declari contorul în interiorul for-ului (ex: for(int i=0...)), variabila i va înceta să existe ("moare") după ce se termină bucla! Dacă ai nevoie de valoarea ei mai târziu, declar-o deasupra buclei.
syncSe încarcă statusul...