Основы для выражения описаны в спецификации языка :
for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement
Вы спрашиваете о случае, когда Expression
равно true
.(Квадратные скобки выше означают, что это необязательно).
Значение этого описано ниже, в Sec 14.14.1.2 :
- Если Выражение отсутствует или присутствует и значение, полученное в результате его оценки (включая возможную распаковку), имеет значение true, то содержащийся Оператор выполняется.
...
- Если присутствует выражение и значение, полученное в результате его оценки (включая возможную распаковку), равно false, то дальшедействие выполнено, и утверждение завершается нормально.
Итак, Expression
присутствует и оценивается в true
(потому что true
оценивается в true
).Следовательно, Statement
выполняется и будет выполняться, потому что Expression
остается true
.
Как таковой, это бесконечный цикл (если нет разрыва, возврата, броска или System.exit
внутри петли).