cin >> len;
while(len>0 && len<80) {
cout << '.';
len--;
}
return 0;
}
Тело while-цикла может вообще не содержать ни одной инструкции. Вот пример:
while(rand() != 100);
Этот цикл выполняется до тех пор, пока случайное число, генерируемое функцией rand(), не окажется равным числу 100.
Цикл do-while — это единственный цикл, который всегда делает итерацию хотя бы один раз.
В отличие от циклов for и while, в которых условие проверяется при входе, цикл do-while проверяет условие при выходе из цикла. Это значит, что цикл do-while всегда выполняется хотя бы один раз. Его общий формат имеет такой вид.
do {
инструкции;
}while(выражение);
Несмотря на то что фигурные скобки необязательны, если элемент инструкции состоит только из одной инструкции, они часто используются для улучшения читабельности конструкции do-while, не допуская тем самым путаницы с циклом while. Цикл do-while выполняется до тех пор, пока остается истинным элемент выражение, который представляет собой условное выражение.
В следующей программе цикл do-while выполняется до тех пор, пока пользователь не введет число 100.
#include <iostream>
using namespace std;
int main()
{
int num;
do {
cout << "Введите число (100 - для выхода): ";
cin >> num;
}while(num != 100);
return 0;
}
Используя цикл do-while, мы можем еще более усовершенствовать программу "Угадай магическое число". На этот раз программа "не выпустит" вас из цикла угадывания, пока вы не угадаете это число.
// Программа "Угадай магическое число":
// 3-е усовершенствование.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int magic; // магическое число
int guess; // вариант пользователя
magic = rand(); // Получаем случайное число.
do {
cout << "Введите свой вариант магического числа: ";
cin >> guess;
if(guess == magic) {
cout << "** Правильно ** ";
cout << magic <<" и есть то самое магическое число.\n";
}
else {
cout << "...Очень жаль, но вы ошиблись.";
if(guess > magic)
cout <<" Ваш вариант превышает магическое число.\n";
else cout <<" Ваш вариант меньше магического числа.\n";
}
}while(guess != magic);
return 0;
}