Конструкция DO
Оператор DO группирует операторы в единый блок. Завершает блок оператор END.
Блок DO может быть простым не повторяющимся блоком, или может использоваться для итерации. Есть два способа управлять итерацией в DO-блоке:
- Повторение указанное количество раз.
- Повторение пока условие истинно.
Повторение указанное количество раз
Чтобы выполнить итерацию заданное количество раз, указываются начальное и конечное целочисленное значение для итерации. По умолчанию значение итерации увеличивается на 1 в конце каждой итерации. При желании можно указать другое значение приращения или уменьшения, используя предложение BY. Итерация завершается, когда достигается конечное значение.
Базовый синтаксис для повторения DO-блока заданное количество раз:
DO iteration-variable = starting-value to ending-value [BY increment-value]: <ABL statements> end.
Пример:
VAR INT ix. DO ix = 1 TO 10: MESSAGE "The value of ix is" ix. END.
Выполнение кода приводит к следующему выводу:
The value of ix is 1 The value of ix is 2 The value of ix is 3 The value of ix is 4 The value of ix is 5 The value of ix is 6 The value of ix is 7 The value of ix is 8 The value of ix is 9 The value of ix is 10
Повторение пока условие истинно
Также можно выполнять итерацию, пока условие истинно, используя конструкцию DO WHILE.
Пример:
VAR INT ix. ix = 10. DO WHILE ix > 0: MESSAGE "The value of ix is" ix. ix = ix - 1. END.
Выполнение кода приводит к следующему выводу:
The value of ix is 10 The value of ix is 9 The value of ix is 8 The value of ix is 7 The value of ix is 6 The value of ix is 5 The value of ix is 4 The value of ix is 3 The value of ix is 2 The value of ix is 1