Конструкция REPEAT
Оператор REPEAT начинает блок операторов ABL, которые многократно обрабатываются до тех пор, пока блок не закончится одним из нескольких возможных способов. Завершает блок оператор END. Блоки REPEAT могут быть явно завершены, когда выполняются условия времени выполнения. Хорошей практикой программирования является включение условия завершения для предотвращения бесконечных циклов. REPEAT-блоки также полезны для перебора записей.
Синтаксис
REPEAT ... : /* ABL statements */ END.
В следующем примере фраза WHILE приводит REPEATк завершению блока после 100 итераций.
VAR INT ix = 0. REPEAT WHILE ix < 100: ix = ix + 1. DISPLAY ix. END.
Выполнение кода приводит к следующему результату (некоторые результаты опущены для краткости):
ix ---------- 1 2 3 4 5 ... 99 100
В следующем коде блок REPEAT используется для перебора записей базы данных.
REPEAT: FIND NEXT Customer. DISPLAY Customer.Name Customer.Balance. END.
В следующем примере блок REPEAT завершается явно:
REPEAT: FIND NEXT Customer. IF Customer.CustNum > 1000 THEN LEAVE. DISPLAY Customer.Name Customer.CustNum Customer.Balance. END.