Оператор while має такий синтаксис:
while ( вираз ) оператор;
де вираз – довільний вираз, що задає умову виконання циклу, оператор – довільний оператор мови, зокрема блок, що формує тіло циклу.
Оператор працює наступним чином:
1) обчислюється значення виразу, тобто перевіряється умова виконання циклу;
2) якщо значення виразу дорівнює нулю, тобто умова хибна, то виконання циклу завершується, управління передається оператору, наступному за while;
3) якщо значення виразу ненульове, тобто умова істинна, то виконується оператор тіла циклу;
4) відбувається повернення до пункту 1 для наступної перевірки умови виконання циклу.
Наведемо приклад програми, яка виводить на екран числа від 0 до 10.
#include <iostream>
using namespace std;
int main(){
int i;
i = 0;
while ( i < 10 ) {
cout << i << endl;
i++;
}
}
На мал. 6.3 наведена блок – схема роботи цієї програми і блок – схема роботи оператора while.

Мал. 6.3. Блок – схема роботи і приклад використання оператора while
На відміну від оператора for, в операторі while немає окремих виразів для ініціалізації змінних циклу і їх зміни. Ці дії, якщо вони необхідні, виконуються перед циклом або всередині циклу.
Знайдемо максимальне значення функції
на інтервалі від 0 до Пі, при цьому будемо використовувати оператор while.
#include <iostream>
using namespace std;
int main(){
const double X1 = 0.;
const double X2 = 3.14159;
double xmax, fmax, d, t, f;
xmax = X1;
fmax = sin( pow( X1, 2 ) ) + pow( cos( X1 ), 2 );
d = 1e-3;
t = X1 + d;
while ( t <= X2 ) {
f = sin( pow( t, 2 ) ) + pow( cos( t ), 2 );
if ( fmax < f ) {
xmax = t;
fmax = f;
}
t += d;
}
cout << xmax << " : " << fmax << endl;
}
Знайдемо значення факторіалу з допомогою оператора while.
#include <iostream>
using namespace std;
int main(){
int n = 5, f = 1;
while ( n )
f *= n--;
cout << f << endl;
}
Приклад програми. Користувач вводить послідовність цілих чисел. Кількість чисел заздалегідь не відома, ознакою кінця вводу чисел є нуль. Знайти кількість чисел, максимальне значення, суму і добуток чисел.
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "");
int num = 0; // Кількість чисел
int sum = 0; // Сума чисел
int pro = 1; // Добуток чисел
int max = 0; // Найбільше число
int n;
cin >> n;
while ( n ) {
++num;
sum += n;
pro *= n;
if ( n > max ) max = n;
cin >> n;
}
cout << "Кількість\t" << num << endl;
cout << "Сума\t" << sum << endl;
cout << "Добуток\t" << pro << endl;
cout << "Найбільше\t" << max << endl;
}
Розглянемо особливості роботи з дійсними числами. Знайдемо найменше число, яке при додаванні до одиниці буде більшим одиниці.
#include <iostream>
using namespace std;
int main() {
double t = 1;
while ( 1 + t / 2 > 1 )
t /= 2;
cout << t << endl;
}