Синтаксис циклу має виглад:
for (вираз1; вираз2; вираз3) блок_операторів;Цей оператор працює наступним чином. Спочатку виконується вираз1, якщо він присутній в конструкції. Потім обчислюється величина виразу2, і якщо отриманий результат прийняв істинне значення виконується тіло циклу блок_операторів. У протилежному випаду виконання циклу зупиняється і відбувається перехід до оператора, що слідує безпосередньо за тілом циклу. Після виконання тіла циклу виконується вираз3 і відбувається перехід до пункту обчислення виразу2.
Вираз1 частіше за все служить в якості ініціалізації якої небудь змінної, що виконує роль лічильника ітерацій.
Вираз2 використовується як перевірочна умова і на практиці найчастіше містить вираз з операторами порівняння. За замовченням величина виразу2 приймає істинне значення.
Вираз3 зазвичай використовуєтсья для зміни значення лічильника циклу або ж містить вираз, що якимось чином впливає на перевірочну умову.
Усі три вирази не обов’язково повинні бути присутніми в конструкції, проте синтаксис не допускає пропуску символа крапка з комою (;). Тому найпростіший приклад нескінченного циклу виглядає наступним чином:
for (;;)
cout<<”Нескінчений цикл”;
Якщо в циклі повинні синхронно змінюватися значення декілької змінних, які залежать від змінної циклу, обчислення їх значень можна помістити в оператор for, використавши оператор «кома».
Типова помилка програмування таких циклів – змінення значення лічильника як в конструкції, так і далі в тілі циклу. Це може призвести до таких негативних наслідків, як «випадення» або повтор ітерацій.
int s=0;
for(int i=1; i<10;i++)
{
s+=i;
cout<<s;
}
Використовуючи оператор «кома» цикл можна переписати наступним чином:
int s=0;
for(int i=1; i<10; i++, s+=i);
cout<<s;