Есть предложение ещё более общего цикла. Который бы как раз покрыл вариант Петра и ещё случай, разбиравшийся в темеviewtopic.php?f=27&t=3175"AND THEN". И был бы в языке вместо LOOP. Мне кажется, Info21 даже предлагал такое что-то, но если вру, прошу извинить.

Проблема, которую решают иногда с помощью LOOP, как известно, в том, что между конъюнктами условия цикла надо бы что-то сложное вычислять. Цикл Петра как раз позволяет вычислять вообще перед всем условием, избегая дублирования и перенося такие вычисления из конца тела в более естественное место в начало.
Но иногда надо действовать между конъюнктами.

## Код:
```
LOOP
  ... ; ... ;
CHECK Conjunct1 DO
  ...; ... ;
CHECK Conjunct2 DO
  ...; ... ;
END
```


В случае истинности конъюнкта выполнение проходит в следующую секцию цикла, уже под охраной условия конъюнкта.
В случае ложности, разумеется, цикл завершается.
Условие цикла и его отрицание легко собирается в уме.

В Аде есть такой цикл с exit when, но нужно, чтобы было именно условие продолжения, для грамотного построения цикла думать через него удобнее. И строить цикл почти как обычный WHILE, но с промежуточными вычислениями. В случае exit when программист вынужден думать наоборот, "через одно место": "а когда же мне спрыгнуть с цикла".

Ситуация из обсуждавшейся темы с цепочкой проверок и прерыванием решается с добавлением в конце CHECK FALSE DO END.
Этап, на котором прервалось, отслеживаем по спец. целой переменной.