5.7. ОПЕРАТОРЫ ВЫХОДА

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

оператор-выхода ::=    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.