Синтаксис оператора такий:
do
оператор
while ( вираз );
Оператор – це довільний оператор мови програмування С++, в тому числі блок операторів, який формує тіло циклу. Вираз – довільний вираз, що задає умову виконання циклу. В цьому операторі спочатку виконується тіло циклу, після цього здійснюється перевірка умови продовження циклу. Блок – схема роботи оператора і приклад його використання наведені на мал. 6.4.

Мал. 6.4. Блок схема і приклад використання оператора do while
Приклад програми. Користувач вводить послідовність цілих чисел. Кількість чисел заздалегідь не відома, ознакою кінця вводу чисел є нуль. Знайти суму чисел.
#include <iostream>
using namespace std;
int main() {
int t, s = 0;
do {
cin >> t;
s += t;
} while ( t != 0 );
cout << s << endl;
}
Знайти перше нульове значення функції
для значень х більше нуля. Будемо шукати перше значення функції, яке знаходиться «на відстані» допустимої помилки від нуля, тобто
.
#include <iostream>
using namespace std;
int main() {
double f; // Значення функції
double d = 1e-5; // Крок зміни х
double x = 0.; // Поточне значення х
double e = 1e-5; // Допустима помилка розрахунків
do {
f = sin( pow( x, 2. ) ) + pow( cos( x ), 2. );
x += d;
} while ( f < -e || f > e );
cout << "x = " << x << endl; // 1.78519
cout << "f = " << f << endl; // 1.02908e-006
}
Знайти перше нульове значення функції
для значень х більше нуля. Будемо знаходити два значення функції – для поточного і наступного значень х. Якщо знак цих двох значень функції буде різним, тобто перше додатне, друге – від’ємне, або навпаки, то між цими двома значеннями х функція переходе через нуль.
#include <iostream>
using namespace std;
int main() {
double f1, f2; // Значення функції для x i x+d
double d = 1e-5; // Крок зміни х
double x = 0.; // Поточне значення х
do {
f1 = sin( pow( x, 2. ) ) + pow( cos( x ), 2. );
f2 = sin( pow( x + d, 2. ) ) + pow( cos( x + d ), 2. );
x += d;
} while ( ( f1 > 0 && f2 > 0 ) || ( f1 < 0 && f2 < 0 ) );
cout << "x = " << x << endl; // 1.78519
cout << "f1 = " << f1 << endl; // 1.02908e-006
cout << "f2 = " << f2 << endl; // -3.04804e-005
}