C++.Бархатный путь


Операторы цикла


Операторы цикла задают многократное исполнение.

ОператорЦикла ::= while (Выражение) Оператор

::= for (ОператорИнициализацииFor [Выражение] ; [Выражение] )Оператор

::= do Оператор while (Выражение);

ОператорИнициализацииFor ::= ОператорВыражение

::= Объявление

Прежде всего, отметим эквивалентные формы операторов цикла.

Оператор for (ОператорИнициализацииFor [ВыражениеA] ;[ВыражениеB]) Оператор

эквивалентен оператору

ОператорИнициализацииFor while (ВыражениеA) { Оператор

ВыражениеB ; }

Эти операторы называются операторами с предусловием.

Здесь следует обратить внимание на точку с запятой после выражения в теле оператора цикла while. Здесь выражение становится оператором.

А вот условие продолжения цикла в операторе цикла while опускать нельзя. В крайнем случае, это условие может быть представлено целочисленным ненулевым литералом.

Следует также обратить внимание на точку с запятой между двумя выражениями цикла for. В последнем примере они представлены символами ВыражениеA и ВыражениеB. Перед нами классический пример разделителя.

ОператорИнициализацииFor является обязательным элементом заголовка цикла. Обязательный оператор вполне может быть пустым.

Рассмотрим пример оператора цикла for: for ( ; ; ) ;

Его заголовок состоит из пустого оператора (ему соответствует первая точка с запятой) и разделителя, который разделяет два пустых выражения. Тело цикла - пустой оператор.

Пустое выражение, определяющее условие выполнения цикла for интерпретируется как всегда истинное условие. Отсутствие условия выполнения предполагает безусловное выполнение.

Синтаксис C++ накладывает на структуру нетерминального символа ОператорИнициализацииFor жёсткие ограничения:

  • это всегда единственный оператор,
  • он не может быть блоком операторов,
  • единственным средством усложнения его структуры служит операция запятая.

Эта операция управляет последовательностью выполнения образующих оператор выражений.

Рассмотрим принципы работы этого оператора. Цикл состоит из четырёх этапов.