![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Как-то возникла ситуация:
Условие то-то тогда сообщим об ошибке действие А не лучше ли Условие то-то тогда сообщим об ошибке иначе действие Просто если условие истинно сообщаем об ошибке и покидаем функцию, действие же должно выполняться в случае если проверка дала false. В принципе одно и тоже но как обстоят дела в отношении быстродействия?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#2 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Мдаа... Вопросы гуру не всегда понятны простым смертным.
Я слышал о разнице в скорости между While, Repeat и For, но для полноценного\неполноценного if - нигде.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Подобные операции выполняются в цикле, обработка строк. Здесь каждый тик имеет значение
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]() Во-вторых: ты описал совершенно разные стратегии, тут все зависит от того когда нужно действие выполнить, а вжруг оно всегда должно выполняться, тогда первый код неверен.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
![]()
Ну, что можно сказать по этому поводу....
Код:
Познавая других, мы познаем себя.
С'est la vie... Последний раз редактировалось SuperVisor; 10.09.2009 в 15:03. Причина: Сердечно извиняюсь.. Скунды забыл... ))) |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Действие должно выполняться только в том случае, если нет ошибки. Это условие проверяет входящие параметры, а действие вызов процедуры по работе со структурой. То есть к примеру проверка выхода индекса за границы, проверка корректности имени и пр. в том же духе. Иными словами выполнение действия напрямую связано с результатами проверки.
Я так и подозревал, в общем иначе будет быстрей чем просто действие после условия. Не зря задал такой вопрос. Только, такой результат всегда? В смысле не вызвана ли задержка операциями ОС?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 10.09.2009 в 15:01. |
![]() |
![]() |
![]() |
#7 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
![]()
Результат постоянный.
Сейчас попробую действия со строками и памятью - видно будет. Комп в покое оставлю. )) Здесь результат выложу. Нет, все-таки exit отрабатывет быстрее.. Если после условия идет очень громоздкая и объемная конструкция, то else проигрывает. Но, опять же, это лишь доли секунды... Ниже приведены 2 результата. Однако закралось такое подозрение, что компилятор улавливает махинации с условием, поэтому я немного его подкорректировал - начал менять переменные в операторе for: Код:
Код:
Делаем выводы.. ))) Кому интересно, что делалось и не делалось - исходник приложил.
Познавая других, мы познаем себя.
С'est la vie... Последний раз редактировалось Stilet; 10.09.2009 в 16:55. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 12.10.2007
Сообщений: 32
|
![]()
Скажем так, то что на практике это проверили это хорошо... Но все, расскажу как все происходит...
Условие надо составлять так, чтобы _предполагаемо_ оно было как можно чаще true. Код:
Si vis pacem, para bellum!
|
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
![]()
Есть же директивы {$ +I} и {$ -I} - отключение проверки на ошибку системными методами.
Директива возвращает code < ошибки> или ноль ( нет ошибки). Вот с ними и следует работать - Код:
Цитата:
И не сомневайся даже ... отдых - кайф, работа - лажа!
Последний раз редактировалось DeKot; 10.09.2009 в 17:41. |
|
![]() |
![]() |
![]() |
#10 | |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]() Цитата:
пыщь
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
условный оператор в PHP | Xeon332 | PHP | 6 | 15.06.2009 17:29 |
Delphi 7. Условный оператор | Юрий2009 | Помощь студентам | 9 | 29.04.2009 19:36 |
Delphi 7. Условный оператор | Юрий2009 | Помощь студентам | 2 | 27.04.2009 20:10 |
Delphi 7. Условный оператор | Юрий2009 | Помощь студентам | 1 | 27.04.2009 19:16 |
Условный оператор IF в Си | Zid@ne | Помощь студентам | 7 | 24.12.2008 20:02 |