Синтакса на контролна стуктура повеќекратно повторување со броење на циклуси - for

Доколку знаете точно колку пати треба да се изврши одредена наредба или група од наредби, тогаш исказот for е најдоброто решение за креирање на циклус. Ова е убедливо најкористениот исказ за овозможување повеќекратно извршување на наредби (се користи многу почесто од while и do-while). Во продолжение следува основната синтакса на for исказот, како и објаснување на чекорите кои се извршуваат од страна на програмата:

for (inicijalizacija; uslov; promeni)
       naredba;

Чекорите кои се извршуваат од страна на програмата се:

  1. Се извршува наредбата/наредбите inicijalizacija (тука најчесто се декларираат и иницијализираат променливите кои се користат во uslov - на пример, int i=0 или int i=0, j=5)

  2. Се проверува точноста на uslov. Доколку uslov има вредност false, циклусот завршува и програмата продолжува со извршување на наредбите кои следат по циклусот. Доколку uslov има вредност true, тогаш програмата ја извршува наредбата naredba (или блокот од наредби кој се наоѓа на нејзино место).

  3. Се извршува наредбата/наредбите promeni (тука најчесто се ажурираат променливите кои се декларирани во inicijalizacija - на пример, i++ или i++, j--). Потоа, се оди назад на чекор 2.


Следната програма ги демонстрира можностите на исказот for:

Пример
 
 
#include <iostream>
using namespace std;
 
int main()
{
    //ispechati gi broevite od 1 do 10
    for (int i=1; i<=10; i++)
        cout << i << endl;
    //presmetaj zbir na broevite od 1 do 1000
    //koi se delivi so 2 ili 5
    int s = 0;
    for (int i=1; i<=1000; i++)
    {
        if ((i%2 == 0) || (i%5 == 0))
        s += i;
    }
    cout << "Zbirot e: " << s << endl;
    //sledniot del kje otpechati ('0 10', '2 7', '4 4')
    for (int i=0, j=10; i<=j; i+=2, j-=3)
    {
        cout << i << " " << j << endl;
    }
    //site 3 parametri (inicijalizacija, uslov i promeni)
    //se nezadolzitelni
    int ii=0, kk=10;
    for ( ;ii<kk; )
    {
        cout << ii << endl;
        //mora da go azurirame 'ii'
        ii++;
    }
    return 0;
}

Од примерот даден погоре се гледа дека сите три параметри (inicijalizacija, uslov и promeni) се незадолжителни (може да останат празни). Во секој случај, знакот ';' мора да се запише помеѓу нив. На пример, доколку одлучиме да не го зададеме параметарот promeni, мора да напишеме for(inicijalizacija;uslov; ), доколку не го зададеме параметарот inicijalizacija, мора да напимеше for (; uslov; promeni), итн.

Многу често, потребно е да извршиме повеќе од една наредба во делот promeni. Ова можеме да го направиме така што наредбите ќе ги одделиме со знакот ',' (за кој веќе зборувавме во делот за оператори).