Операторы цикла задают многократное исполнение.
ОператорЦикла ::= 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 жёсткие ограничения:
Эта операция управляет последовательностью выполнения образующих оператор выражений.
Рассмотрим принципы работы этого оператора. Цикл состоит из четырёх этапов.