break - это безусловный выход из цикла (любого).
while true do //Бесконечный цикл
begin
I:=I+1;
if I>100 then
break;//Выход из цикла
end;
Поскольку в MP нет так всеми нелюбимого GOTO, и
Exit тоже нет, придется для возврата на точку входа делать что-то в роде:
var
Flag:Boolean;// Флаг возврата
procedure proc1;
begin
....
Flag:=False;//По умолчанию предполагаем, что нужно будет вернуться
if not(I<10) then //Под NOT - условие, при котором нужно выйти
begin
// Код процедуры после точки возврата
Flag:=True;//Если мы попали сюда, значит условие возврата не отработало, отменяем возврат
end;
end;
//В основном коде
...
while not flag do proc1; // Крутимся, пока флаг возврата не равен true
Изврат, конечно, но других вариантов вроде бы нет.
Мне в одном проекте из-за отсутствия goto и exit пришлось навертеть такую рекурсию на переходах по меню, что если долго лазить по меню, можно запросто словить переполнение стека. А по другому никак.