Цикл do-while отличается от while только тем, что проверка условия работы производится не в начале итерации, а после нее. Это гарантирует, что do-while в любом случае выполнится хотя бы один раз, в то время как цикл while может не выполниться ни разу.
Рассмотрим усовершенствование игры «Угадай число!», разработанной на предыдущем занятии. Напомним, что компьютер не предлагал попробовать еще раз, если с первого раза число не было угадано. Для решения этой проблемы можно поместить игру внутрь цикла, который работает до тех пор, пока число не будет угадано; поскольку первая попытка должна быть произведена в любом случае, то уместно использовать именно do-while.
srand(time(0));
int number = rand() % 10;
int your_number;
//Счетчик количества попыток
int trials = 0;
cout << "Угадай число:\n";
do {
trials++;
cin >> your_number;
if (number!= your_number) {
cout << "Не угадали!\n\n";
cout << "Попробуйте еще раз:\n";
}
} while (number!= your_number);
cout << "Вы угадали с " << trials << " попыток\n";
Программа работает до тех пор, пока условие работы цикла number!=your_number истинно, т.е. введенное число не совпадет с загаданным.