Синтакса на контролна стуктура повеќекратно повторување со проверка на крај на циклусот - do while
 

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

                                                      do
                                                             naredba;
                                                      while (uslov);

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

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

Пример
 
 
#include <iostream>
using namespace std;
 
int main()
{
int n;
do
{
    cout << "Vnesi pozitiven broj: ";
    cin >> n;
}
while (n <= 0);
return 0;
}

Програмата очекува корисникот да внесе еден позитивен цел број (чија вредност се запишува во променливата n). Сé додека корисникот не внесе позитивен број (т.е. додека n<=0), програмата ќе печати "Vnesi pozitiven broj: " и ќе го чита целиот број кој го внесол корисникот.

Исказот do-while, најчесто, се употребува кога условот од кој зависи повторното извршување на циклусот зависи од податоци кои се читаат/пресметуваат во самиот блок од наредби; и проверката на вредноста на условот нема смисла без тие податоци.

Пример

#include <iostream>
using namespace std;

int main ()
{
unsigned long n;
    do {
        cout << "Vnesi broj (0 za kraj): ";
        cin >> n;
        cout << "Vie vnesovte i sega e kraj: " << n << "\n";
    } while (n != 0);

return 0;
}