Выбрать главу

  cin >> len;

 while(len>0 && len<80) {

  cout << '.';

  len--;

 }

 return 0;

}

Тело while-цикла может вообще не содержать ни одной инструкции. Вот пример:

while(rand() != 100);

Этот цикл выполняется до тех пор, пока случайное число, генерируемое функцией rand(), не окажется равным числу 100.

Цикл do-while

Цикл 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;

}

Использование инструкции continue

Инструкция continue позволяет немедленно перейти к выполнению следующей итерации цикла.

В C++ существует средство "досрочного" выхода из текущей итерации цикла. Этим средством является инструкция continue. Она принудительно выполняет переход к следующей итерации, опуская выполнение оставшегося кода в текущей. Например, в следующей программе инструкция continue используется для "ускоренного" поиска чётных чисел в диапазоне от 0 до 100.

#include <iostream>

using namespace std;

int main()

{

 int x;

 for(x=0; x<=100; x++) {

  if(x%2) continue;

  cout << x << ' ';

 }

 return 0;

}

Здесь выводятся только четные числа, поскольку при обнаружении нечётного числа происходит преждевременный переход к следующей итерации, и cout-инструкция опускается.

В циклах while и do-while инструкция continue передает управление непосредственно инструкции, проверяющей условное выражение, после чего циклический процесс продолжает "идти своим чередом". А в цикле for после выполнения инструкции continue сначала вычисляется инкрементное выражение, а затем— условное. И только после этого циклический процесс будет продолжен.

Использование инструкции break для выхода из цикла