Показать сообщение отдельно
Старый 01.09.2010, 15:37   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: if break=2012 then ...

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<10then //Под NOT - условие, при котором нужно выйти
 
begin 
 
// Код процедуры после точки возврата
 
Flag:=True;//Если мы попали сюда, значит условие возврата не отработало, отменяем возврат
 
end;
end;

//В основном коде
...

while 
not flag do proc1// Крутимся, пока флаг возврата не равен true 
Изврат, конечно, но других вариантов вроде бы нет.


Мне в одном проекте из-за отсутствия goto и exit пришлось навертеть такую рекурсию на переходах по меню, что если долго лазить по меню, можно запросто словить переполнение стека. А по другому никак.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Ksanatos (01.09.2010)