Справочная статья
Оператор EXIT
Повторения иногда нужно прекратить раньше, чем сработает условие цикла: результат уже найден или продолжать вычисление не требуется. EXIT завершает ближайший охватывающий цикл указанного вида и передаёт управление за его окончание. Форм две — EXIT FOR и EXIT DO; каждая действует только в цикле своего вида и не принимает аргументов.
Формы и допустимый контекст
Оператор EXIT нужен для прекращения повторений, когда результат уже найден или продолжать вычисление не требуется. Форма EXIT FOR допускается внутри охватывающего FOR, а EXIT DO — внутри охватывающего DO. Обе формы работают в консольных и графических программах, включая вложенные условия и подпрограммы.
EXIT FOR
EXIT FORФорма допускается внутри FOR … NEXT и передаёт управление после соответствующего NEXT. Счётчик завершённого цикла становится недоступен. В следующей программе выход происходит на значении три, поэтому напечатаны только два первых числа:
FOR index = 1 TO 5
IF index = 3 THEN
EXIT FOR
END IF
PRINT index
NEXTРезультат:
1
2Для значения три EXIT FOR выполнился до PRINT, поэтому третье число не появилось, а оставшиеся проходы не начались.
EXIT DO
EXIT DOФорма допускается внутри DO … LOOP и передаёт управление после соответствующего LOOP. Условие завершаемого цикла больше не проверяется.
Вложенные циклы
Завершается ближайший охватывающий цикл именно указанного вида. Другие внешние циклы продолжают работу. Аргументов у этих форм нет; формы EXIT WHILE в Axiom нет.
Диагностика
MB2013—EXIT FORзаписан вне циклаFOR.MB2014—EXIT DOзаписан вне циклаDO ... LOOP.