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