Оператор For выполняет вложенные операторы заданное число раз. Количество итераций определяется начальным и конечным значением переменной цикла, а также его шагом.
for-statement:
For identifier := expression To expression for-step-clauseopt Do block End For
for-step-clause:
Step expression
В каждом операторе For указывается идентификатор переменной, которая называется переменной цикла. Также указываются выражения, определяющие начальное и конечное значения переменной цикла, а также шаг его изменения. Если шаг изменения переменной цикла не указан, то он считается равным единице. Оператор выполняется следующим образом:
Вычисляется выражение, определяющее начальное значение переменной цикла. Вычисленное значение присваивается переменной цикла. Данный шаг выполняется единожды в начале выполнения оператора.
Вычисляется значение выражения, определяющего конечное значение переменной цикла, и сравнивается с текущим значением переменной цикла. Если текущее значение переменной цикла меньше или равно (больше или равно) вычисленному значению при условии что шаг цикла положителен (отрицателен), то управление передается блоку вложенных операторов. По достижению завершающей точки блока вложенных операторов производится изменения значения управляющей переменной на величину шага цикла и управление передается на данный шаг сначала.
Если текущее значение переменной цикла оказалось большим (меньшим) конечного значения при условии что шаг цикла положителен (отрицателен), то управление передается в завершающую точку оператора.
Внутри блока вложенных операторов оператора For можно использовать оператор Break для немедленной передачи управления в завершающую точку оператора For, а также оператор Continue для передачи управления в завершающую точку вложенных операторов.
Private Sub TestFor();
Var
i, j: integer;
Rnd: Random = New Random();
Begin
For i := 0 To 100 Do
j := Rnd.Next(0, 100);
If j > 50 Then
Break;
End If;
End For;
End Sub;
При выполнении примера будет осуществлен выход из цикла, если было сгенерировано случайное целое число больше 50.
См.также: