Instrucțiunea for este o structură repetitivă cu număr necunoscut de pași și test inițial, echivalentă cu while.
Sintaxa
for (Expresie_de_Initializare ; Expresie_de_Testare ; Expresie_de_Continuare)
Instructiune
Mod de execuție
- Se evaluează
Expresie_de_Initializare - Se evaluează
Expresie_de_Testare. Rezultatul se convertește labool. - Dacă rezultatul este
true:- Se execută
Instructiune. - Se evaluează
Expresie_de_Continuare. - Se revine la pasul 2.
- Se execută
- Dacă rezultatul este
false, se trece la instrucțiunea de dupăfor.

Observații
- Instrucțiunea
foreste echivalentă cu instrucțiuneawhile. Sintaxa descrisă mai sus este echivalentă cu:
Expresie_de_Initializare;
while( Expresie_de_Testare )
{
Instructiune
Expresie_de_Continuare;
}
Instructiunese execută cât timpExpresie_de_Testareeste nenulă – condiție adevărată.- Dacă
Expresie_de_Testareeste de început vidă,Instructiunenu se execută deloc, iarExpresie_de_Continuarenu se mai evaluează. Instructiunepoate fi orice fel de instrucțiune, dar una singură. Dacă sunt necesare mai multe instrucțiuni, se va folosi instrucțiunea compusă.- Este necesar ca cel puțin o variabilă care apare în
Expresie_de_Testaresă-și modifice valoarea înInstructiunesau la evalureaExpresiei_de_Continuare. Altfel se obține o buclă infinită. - Cele trei expresii,
de_Initializare,_de_Testareși_de_Continuaresunt separate prin caracterul;– obligatoriu! - Oricare dintre cele trei expresii,
de_Initializare,_de_Testareși_de_Continuare, eventual toate, poate să lipsească. În acest caz avem expresii vide. DacăExpresie_de_Testareeste vidă, rezultatul său este nenul! Expresie_de_Initializarese execută o singură dată. Poate să conțină și declararea unor variabile. În acest caz, variabilele vor exista numai în instrucțiuneafor.
Exemplu
Următorul program citește valoarea variabilei n și calculează suma primelor n numere naturale. Rulați-l analizând rezultatul pentru diverse valori ale lui n, inclusiv 0.
#include <iostream>
using namespace std;
int main ()
{
int n;
cin >> n;
int S = 0;
for(int i = 1; i <= n ; i ++)
S += i;
cout << S << endl;
return 0;
}