ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 3) онлайн

Цикл while

Цикл for выполняет последовательность действий определенное количество раз. А как поступить в том случае, если заранее не известно, сколько раз понадобится выполнить цикл? Для этого разработан другой вид цикла — while.

В следующем примере под названием ENDONO пользователю предлагают вве- сти серию значений. В том случае, когда вводимое значение оказывается рав- ным нулю, происходит выход из цикла. Очевидно, что в этой ситуации заранее невозможно узнать, сколько ненулевых значений введет пользователь.

// endono.cpp // применение цикла WHILE #include  <iostream> using namespace std;

int main() {

  int n = 99;           // n не должна быть равна 0 перед началом цикла

  while(n != 0 )        // цикл, пока значение n не равно 0

                cin >> n;           // считывание n с клавиатуры

  cout << endl;

  return 0;

}

Далее мы приведем возможный пример работы программы. Пользователь вво- дит значения, а программа отображает эти значения до тех пор, пока пользова- тель не введет ноль, после чего программа завершается.

1

27

33

144

9

0

Внешне цикл while напоминает упрощенный вариант цикла for. Он содержит условие для продолжения цикла, но не содержит ни инициализирующих, ни ин- крементирующих выражений. Синтаксис цикла while показан на рис. 3.3.

Рис. 3.3. Синтаксис цикла while

До тех пор пока условие продолжения цикла выполняется, исполнение тела цикла продолжается. В примере ENDONO значение выражения

n != 0

истинно до тех пор, пока пользователь не введет ноль.

На рис. 3.4 показан механизм работы цикла while. На самом деле он не так прост, как кажется вначале. Несмотря на отсутствие инициализирующего опе- ратора, нужно инициализировать переменную цикла до начала исполнения тела цикла. Тело цикла должно содержать оператор, изменяющий значение перемен- ной цикла, иначе цикл будет бесконечным. Таким оператором в цикле из при- мера ENDONO является cin >> n;

 

Рис. 3.4. Исполнение цикла while

 

17