WHILE
Итеративный оператор While обеспечивает повторение группы выражение, пока верно условное логическое выражение. Условие в цикле WHILE проверяется до начала цикла.
Синтаксис:
WHILE <условное_логическое_выражение> DO
<выражения - тело цикла>
END_WHILE;
|
Алгоритм выполнения:
-
Проверяется условное логическое выражение.
-
Если условие ложно, выполнение оператора завершается.
-
Если условие верно, выполняется тело цикла.
-
Вышеуказанные этапы выполняются циклически, пока условное выражение верно.
При использовании цикла While необходимо предусмотреть ситуацию выхода из цикла, в которой результат условного логического выражения ложен. Если логическое выражение всегда верно (TRUE), тело цикла выполняется бесконечно, что приведет к аварийной остановке приложения. Если логическое выражение изначально ложно (FALSE), тело цикла не выполняется ни разу.
Изменение состояния входных переменных не может быть использовано для описания условия оператора REPEAT, так как в синхронной исполнительной системе Unimod PRO 2 поток приложения будет заблокирован до окончания выполнения оператора REPEAT, а входные переменные до его завершения не смогут обновиться. Игнорирование данного требования может привести к зацикливанию и зависанию приложения.
|
Пример:
i := 100;
var := 0;
//цикл выполнится 8 раз, выход произойдет при условии 10 < 10 = false
//после завершения оператора переменная var=8
WHILE i > 10 DO
var :=var + 1;
i := i -10;
END_WHILE;
|
