A for
цикл не требует использования каких-либо переменных.Он просто определяет использование трех выражений , каждое из которых может быть необязательным:
for ( <em>expression-1<sub>opt</sub></em> ; <em>expression-2<sub>opt</sub></em> ; <em>expression-3<sub>opt</sub></em> ) <em>statement</em>
Сначала оценивается выражение-1 (если оно присутствует),Это выражение обычно инициализирует условие, которое мы будем проверять в expression-2 , но не имеет to.
Далее, expression-2 оценивается.Если результат выражения не равен нулю, то тело цикла будет выполнено.Если expression-2 отсутствует, то оно неявно заменяется на 1
.
После выполнения тела цикла вычисляется expression-3 .Это выражение обычно обновляет условие, которое мы проверяем в expression-2 , но, опять же, оно не имеет до.
Повторение двух последних шагов до expression-2 оценивается в ноль.
В случае for ( 1; 2; 3 ) ...
, 2
оценивается в ненулевое значение, поэтому выполняется тело цикла.Поскольку это значение никогда не меняется, цикл выполняется «навсегда».Вы получаете тот же результат с for (;;)
.