![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Exit [D7]
Цукор 5 © (2005-09-21 01:56:00)Предположим имеется такой вот сабж :
function MyLOL:Integer;
begin
...
if условие then
begin
Result:=1;
Exit;
end else
begin
Result:=2;
Exit;
end;
end;
таких вот begin Result:=1; Exit;end приличное кол-во. Я же хочу их вынести в ф-цию.Типа Exit_(I:Integer) но сабж не получатся ибо команда Exit не выполняется для основного кода. Можно ли как-нибудь выйти из этого положения???
Leonid Troyanovsky (2005-09-21 10:52:00) [21]
> Внук © (21.09.05 09:04) [4]
> >>Можно ли как-нибудь выйти из этого положения???
> Можно. Не пользоваться Exit,goto,break,continue,halt и
Хотел бы я увидеть приложение, обходящееся без, скажем, break.
Видимо, оно должно обходиться и без for.
--
Regards, LVT.
evvcom (2005-09-21 09:30:00) [22]И еще совет.
> Result:=1;
гораздо нагляднее будет
const
MyLOL_RES_OK = 0;
MyLOL_RES_<смысловой идентификатор 1> = 1;
MyLOL_RES_<смысловой идентификатор 2> = 2;
...
Result := MyLOL_RES_OK;
...
Result := MyLOL_RES_<смысловой идентификатор 1>;
// и т.д.
Внук (2005-09-21 09:04:00) [23]>>Можно ли как-нибудь выйти из этого положения???
Можно. Не пользоваться Exit,goto,break,continue,halt и т.д., искуственно прерывающих выполнение блока, а проектировать приложение тщательнее. Имхо.
Quattro (2005-09-21 03:53:00) [24]йопт..хотел сказать если выполняется условие
Джо (2005-09-21 02:36:00) [25]
> Можно ли как-нибудь выйти из этого положения???
возбудить исключение.
Quattro (2005-09-21 02:27:00) [26]а зачем здесь Exit??
begin
Result:=1;
Exit;
если условие не выполняется ,дело дальше не пойдёт.....