Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 165
от 28.10.2005, 03:48

Администратор:Калашников О.А.
В рассылке:Подписчиков: 185, Экспертов: 33
В номере:Вопросов: 1, Ответов: 7


Вопрос № 28155: Уважаемы эксперты, скажите в чем кардинальное различие использования операторов case и if...elseif? Чем они отличаются, кроме того что они имеюи различие в форме записи и в case можно не ставить break, и как следствие делать хитрющщие условные перехо...

Вопрос № 28.155
Уважаемы эксперты, скажите в чем кардинальное различие использования операторов case и if...elseif? Чем они отличаются, кроме того что они имеюи различие в форме записи и в case можно не ставить break, и как следствие делать хитрющщие условные переходы. Может какой работает быстрее или предпочтительнее использовать?
Отправлен: 23.10.2005, 03:45
Вопрос задал: Дорошенко Иван (статус: 1-ый класс)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Tsechoev Bagaudin
Здравствуйте, Дорошенко Иван!
В том случае, если нужно сравнивать какую-то переменную с большим количеством значений, удобней использовать и работает быстрее case. Если объяснять просто, то представьте себе что вы:
1. Сравниваете какой-то предмет на схожесть с другими, при этом держите образец в руках и подбираете к нему те которые вам доступны.
2. Каждый раз берете по два предмета и сравниваете их до тех пор пока, у вас в руках не окажется два одинаковых предмета. (в случае с else if).
Образ конечно не абсолютно точен. Одним словом, в случае использования case уже известный адрес памяти сравнивается с другими ячейками памяти (которые расположены рядом), а в случае с if elseif каждый раз идет взятие адреса переменной, т.е. лишнее обращение к памяти. Не скажу что использование той или другой конструкции существенно снизит или повысит производительность кода, но желательней использовать и удобней case, скажем еще - и меньше печатать код :)
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 23.10.2005, 05:22

Отвечает: Ерёмин Андрей
Здравствуйте, Дорошенко Иван!
Да нет, просто case в некоторых случаях удобнее использовать, чем if..else. Если, к примеру, требуется проверить, совпадает ли значение переменное с каким-либо значением (или 2 таких сравнения), то нужно использовать if..else и даже не заморачиваться. Ну а если нужно сравнить переменную с десятком значений, то тут case'ом легко выйдет, а на if..else слишком большой и нечитабельный код получится. Разницы в скорости их работы абсолютно нет.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 23.10.2005, 08:25

Отвечает: Драк Георгий
Здравствуйте, Дорошенко Иван!
Впринципе разницы в скорости работы нету. Но case удобнее использовать при большом количестве значений, с которыми нужно сравнить значение переменной. Если будешь юзать if...else - получиться "мега-конструкция", которая будет мягко говоря трудно читаемая. А с case будет проще и аккуратней. Зато если нужно сделать 1-2 проверки - то лучше заюзать if...else и всё. Так что выбирай в зависимости от ситуации.
---------
Sonic always help you, if he wish...
Ответ отправил: Драк Георгий (статус: 2-ой класс)
Отправлен: 23.10.2005, 10:55

Отвечает: Licvidator
Здравствуйте, Дорошенко Иван!
Информация для размышления:
http://www.visual.2000.ru/develop/talks/talks04a.htm
http://vbnet.ru/forum/show.aspx?id=69319&page=2
Мое мнение - кардинальных различий нет, используйте что вам удобнее в той или иной ситуации.
Ответ отправил: Licvidator (статус: Профессор)
Отправлен: 23.10.2005, 12:49

Отвечает: SKE
Здравствуйте, Дорошенко Иван!
В чем разница? IF... ElseIF - это условие, а Case - это выбор. Если нужно проверить одно значение, допустим $name == "Ivan", то удобней пользоваться (даже не удобней, а необходимо) оператором IF. А если Нам надо проверить одну переменную и у нее может быть 1000 значений, то проще поставить Case, чем 1000 операторов IF.
Надеюсь я понятно объяснил???
Ответ отправил: SKE (статус: Студент)
Отправлен: 24.10.2005, 06:17

Отвечает: Lector
Здравствуйте, Дорошенко Иван!
Использовать нужно тот вариант, который будет легче читаться посторонним программистом.
Кардинального различия в быстродействии нет.
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: 6-ой класс)
Отправлен: 24.10.2005, 15:09

Отвечает: Dmitrij Ivanov
Здравствуйте, Дорошенко Иван!

При небольшом колличестве выборов эффективнее if-elseif-else при большом - switch
под эффективностью я имею ввиду не только быстродействие кода, но и время-удобство требуемое для дальнейшего изменения кода и понимания его другим програмистом
Ответ отправил: Dmitrij Ivanov (статус: 1-ый класс)
Отправлен: 24.10.2005, 16:31


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное