R.6.5.3 Оператор for

R.6.5.3 Оператор for

Оператор for

 for ( оператор-иниц выражение-1 opt ; выражение-2 opt ) оператор

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

оператор-иниц

while ( выражение-1 ) {

 оператор

 выражение-2 ;

}

за исключением того факта, что оператор continue в операторе for вызовет выполнение выражение-2 перед тем, как начать повторное вычисление выражения-1. Таким образом, первый оператор задает инициализацию для цикла, первое выражение производит проверку, выполняемую перед каждым шагом цикла, так что цикл завершается, когда выражение становится нулем, а второе выражение обычно задает приращение, и оно добавляется после каждого шага цикла. Первое выражение должно иметь арифметический тип, или тип указателя, или тип класса, для которого существует однозначное преобразование к арифметическому типу или типу указателя (§R.12.3).

Могут быть опущены одно или оба выражения. Если отсутствует выражение-1, то эквивалентный цикл с while имеет условие while(1).

Если оператор-иниц является описанием, область видимости имен, описанных в нем, простирается до конца блока, закрывающего оператор for.