Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Философское. Как правильнее выйти из процедуры?


novill ©   (2006-08-21 11:49:00) 

Есть некий признак, при появлении которого, процедура должна заканчивать работу.

Как правильнее делать?

...If признак then exit;
...


или

...If not признак
then
 begin
  остальное тело процедуры
 end;
...


Leonid Troyanovsky   (2006-08-21 20:44:00) [1]


> Галинка ©   (21.08.06 20:37) [16]

> Главное выяснить, появляется ли признак во время выполнения
> процедуры, или он извествен еще до ее вызова...


Главное в танке не это.

Бо, если во время исполнения процедуры некий признак стал
не таковым, как от него ожидалось, то существует наиспытанейший
способ известить об этом общественность путем того же raise.

--
Regards, LVT.


Галинка   (2006-08-21 20:37:00) [2]

Главное выяснить, появляется ли признак во время выполнения процедуры, или он извествен еще до ее вызова...


Leonid Troyanovsky   (2006-08-21 20:11:00) [3]


> AlexWlad ©   (21.08.06 19:48) [13]


> Предпочитаю вариант 1.

[12] лучше, IMHO.
Проверить до вызова искомой функции, пуркуа па?

> Но встречал такую парадигму: "У процедуры/функции может
> быть только одна точка выхода".

Стереотипы, IMHO.

Даже самые рьяные противники GOTO протестовали лишь
против ссылок назад, бо, видимо, листинги (были такие
знатные папирусы с исходным кодом) легче гнулись вперед.

А, возможно, просто раздражают отсылки к уже читанному
(не надо нам "Баден-Баден" - чего мы совсем тупые).

--
Regards, LVT.


Пусик   (2006-08-21 19:54:00) [4]


> AlexWlad ©   (21.08.06 19:48) [13]
> Предпочитаю вариант 1. Но встречал такую парадигму: "У процедуры/функции
> может быть только одна точка выхода".


Это не парадигма. Это догматизм.


AlexWlad   (2006-08-21 19:48:00) [5]

Предпочитаю вариант 1.
Но встречал такую парадигму: "У процедуры/функции может быть только одна точка выхода".


palva   (2006-08-21 15:13:00) [6]

> Философское. Как правильнее выйти из процедуры?

Философское. Может быть, правильнее в нее не заходить?


DprYg   (2006-08-21 14:17:00) [7]

Exit может быть полезна в try..finally


Ega23   (2006-08-21 14:15:00) [8]


> Даже для функций предпочитаю вариант 1. Не понимаю противников
> Exit, Break и Continue.


Только Result надо обязательно определить.


guav   (2006-08-21 14:04:00) [9]

Даже для функций предпочитаю вариант 1. Не понимаю противников Exit, Break и Continue.


Sergey13   (2006-08-21 13:38:00) [10]

Насколько я понял, если

> Есть некий признак, при появлении которого, процедура должна заканчивать работу
То только вариант 1. Ибо при 2 она фактически и не начнет работу.


Ega23   (2006-08-21 13:37:00) [11]


> Предпочитаю 1 только по той причине, что весь остальной
> код не нужно сдвигать на 4 позиции вправо. Так его удобнее
> читать.


Вот и я тоже по этой же причине.


Desdechado   (2006-08-21 13:31:00) [12]

Предпочитаю 1 только по той причине, что весь остальной код не нужно сдвигать на 4 позиции вправо. Так его удобнее читать.


saxon   (2006-08-21 12:47:00) [13]


> default ©   (21.08.06 12:24) [4]
> для лучшей читабельности кода больше подходит вариант 1
> дабы begin end не городить

Всегото на 1 слово больше, чем в 1 варианте. :)


default   (2006-08-21 12:24:00) [14]

слово правильно тут неуместно
для лучшей читабельности кода больше подходит вариант 1 дабы begin end не городить


Пусик   (2006-08-21 12:24:00) [15]


> novill ©   (21.08.06 11:49) 


If признак then exit;намного более читабельно.


Ega23   (2006-08-21 12:23:00) [16]

ИМХО, без разницы. По мне так 2 - более длинно.


@BraIN   (2006-08-21 12:20:00) [17]

По моему скромному мнению, 2.


Наверх

Титульная страница Поиск, карта сайта Написать письмо