Skip to content

Блоки потока управления: for

Полная форма for блока цикла:

for является ключевым словом. Части InitSimpleStatement и PostSimpleStatement должны быть простыми операторами, и PostSimpleStatement часть не должна быть коротким объявлением переменной. Condition должно быть выражением, результатом которого является логическое значение. Все три части являются необязательными.

В отличие от многих других языков программирования, только что упомянутые три части, следующие за for ключевым словом, не могут быть заключены в пару ().

Каждый for поток управления формирует минимум два блока кода — один неявный, а другой явный. Явный вложен в неявный.

Блок InitSimpleStatement в for цикле будет выполнен (только один раз) перед выполнением других операторов в for блоке цикла.

Выражение Condition будет оцениваться на каждом шаге цикла. Если результат оценки равен false, то цикл завершится. В противном случае будет выполнено тело (также известное как явный блок кода) цикла.

PostSimpleStatement будет выполняться в конце каждого шага цикла.

Пример for цикла. В примере будут напечатаны целые числа от 0 до 9.

Если обе части InitSimpleStatement и PostSimpleStatement отсутствуют (просто рассматривайте их как пустые операторы), две точки с запятой рядом с ними можно опустить. Форма называется for формой цикла только с условием. Это то же самое, что while цикл в других языках.

Если Condition часть отсутствует, компиляторы будут рассматривать ее как true.

Если InitSimpleStatement в блоке for является коротким оператором объявления переменных, то объявленные переменные будут рассматриваться как объявленные в верхнем вложенном блоке неявного кода for блока. Например, следующий фрагмент кода печатается 012 вместо 0.

Оператор break может использоваться для предварительного перехода выполнения из for блока потока управления циклом, если for блок потока управления циклом является самым внутренним разрушаемым блоком потока управления, содержащим break оператор.

Оператор continue может быть использован для завершения текущего шага цикла заранее (PostSimpleStatement все равно будет выполнен), если for блок потока управления циклом является самым внутренним блоком потока управления циклом, содержащим continue оператор. Например, следующий фрагмент кода напечатает 13579.