TeorieInstrucțiunea FOR
Teorie: Instrucțiunea FOR
Structura repetitivă cu număr cunoscut de pași. Sintaxă, exemple de parcurgere și capcane frecvente.
Nivel: Începător 30 min
Instrucț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.
1. 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ă estefalsă, 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 5
for (int i = 1; i <= 5; i++) {
cout << i << " ";
}Afișează: 1 2 3 4 5
2. 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
}Capcane 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...)), variabilaiva înceta să existe ("moare") după ce se termină bucla! Dacă ai nevoie de valoarea ei mai târziu, declar-o deasupra buclei.
Se încarcă statusul...