Оператор выхода используется для окончания выполнения объемлющего оператора цикла (называемого в дальнейшем просто циклом); окончание может быть условным, если оператор выхода содержит условие.
оператор-выхода ::= exit [ имя-цикла][ when условие];
Оператор выхода с именем цикла допустим только в именованном цикле и приманив юя к этому циклу; оператор выхода без имени цикла допускается в некотором цикле и применяется к самому внутреннему объемлющему циклу (именованному или нет). Кроме этого, применяемый к конкретному циклу оператор выхода не должен появляться в теле подпрограммы, теле пакета, теле задачи, в настраиваемом теле или в операторе принятия, если эта конструкция вложена в рассматриваемый цикл.
Для выполнения оператора выхода сначала вычисляется условие, если оно есть. Выход из цикла происходит, если значением условия является TRUE или условие отсутствует.
Примеры:
for N in 1 .. MAXJMUMJTEMS loop GET_NEW_ITEM(NEW_ITEM); MERGE_ITEM(NEW_ITEM, STORAGE_FILE); exit when NEW_ITEM = TERMINAL_ITEM; end loop;MAIN_CYCLE: loop -- начальные операторы exit MAINCYCLE when FOUND; -- заключительные операторы end loop MAINCYCLE;
Примечание. Выход из нескольких вложенных циклов можно осуществить с помощью оператора выхода с именем внешнего цикла.
Ссылки: вычисление 4.5, имя цикла 5.5, логическое значение 3.5.3, настраиваемое тело 12.1, оператор принятия 9.5, оператор цикла 5.5, тело пакета 7.1, тело подпрограммы 6.3, условие 5.3.