История изменений
Исправление wandrien, (текущая версия) :
PL/SQL использует синтаксис Ады почти один в один. Они использовали готовый синтаксис.
Цикл это всегда
LOOP...END LOOP
; FORли,
WHILEли,
FOREACH` ли - дело десятое, факультативное и описательное приставкой к циклу. Тут даже ошибиться-то негде, всё очевидно.
Это работает только при условии, что в языке нет конструкции для цикла с пост-условием.
Если записывать цикл с пост-условием не как отдельную синтаксическую конструкцию, а как:
LOOP
...
EXIT WHEN что-то;
END LOOP;
то да, проблемы нет.
Проблема «а как это всё цельно в синтаксисе представить» возникает, если мы хотим ввести туда цикл с пост-условием.
В таком случае тело цикла, очевидно, не может заканчиваться на END
. Приходится искать подходящее ключевое слово, чтобы обозначить конец тела цикла.
Вот как эту задачу решили в Basic.
Исторически первым вариантом цикла был простой while
, который заканчивался на end while
:
Но затем придумали универсальный вариант, который покрывает 4 разных формы представления цикла:
Исходная версия wandrien, :
PL/SQL использует синтаксис Ады почти один в один. Они использовали готовый синтаксис.
Цикл это всегда
LOOP...END LOOP
; FORли,
WHILEли,
FOREACH` ли - дело десятое, факультативное и описательное приставкой к циклу. Тут даже ошибиться-то негде, всё очевидно.
Это работает только при условии, что в языке нет конструкции для цикла с пост-условием.
Если записывать цикл с пост-условием не как отдельную синтаксическую конструкцию, а как:
LOOP
...
EXIT WHEN что-то;
END LOOP
то да, проблемы нет.
Проблема «а как это всё цельно в синтаксисе представить» возникает, если мы хотим ввести туда цикл с пост-условием.
В таком случае тело цикла, очевидно, не может заканчиваться на END
. Приходится искать подходящее ключевое слово, чтобы обозначить конец тела цикла.
Вот как эту задачу решили в Basic.
Исторически первым вариантом цикла был простой while
, который заканчивался на end while
:
Но затем придумали универсальный вариант, который покрывает 4 разных формы представления цикла: