Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.96/46: Рейтинг темы: голосов - 46, средняя оценка - 4.96
Заблокирован
1

Зачем вообще switch, если есть if?

29.03.2011, 22:24. Показов 9603. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Цитата Сообщение от forik Посмотреть сообщение
Кстати есть мнение
Кстати. Хотелось бы задать один вопрос. Я ни когда не пользуюсь оператором выбора. А тем более когда счас у нас есть такая возможность писать if а потом else if. Прога конечно проверяет возможные варианты, но если найдет нужное булевое значение уже дальше не полезет. Вот кто мне объяснит зачем вообще нужен этот switch?

 Комментарий модератора 
Все сообщения не относящиеся к теме https://www.cyberforum.ru/csha... 55511.html перенесены сюда.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2011, 22:24
Ответы с готовыми решениями:

Зачем вообще нужно слово NULL если можно просто написать 0?
Для чего нужны все эти слова как например NULL, EOF? Вместо них можно просто цифры написать.

Зачем вообще нужен рабочий стол, если в нем нельзя создавать даже папки и ярлыки
Накрылся диск. Пришлось заново устанавливать ubuntu. Оказалось, что помещать или создавать папки и...

Зачем reinterpret_cast<>(), если есть static_cast<>() ?
эти операторы были добавлены в С++ лишь для наглядности по сравнению с C-style casting?

Зачем php, если есть CMS?
Я вот решил учить программы для создания и дизайна сайтов, пока составил план html,css,js,...

23
Заблокирован
30.03.2011, 17:47  [ТС] 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от nicolaus2 Посмотреть сообщение
Вместо "провалов" в switch, свойственных С++ в C# используется небезызвестный оператор goto для перехода к какому-то case-у.
Как бы это объяснить? Я прочитал не мало литературы, где не рекомендуют использовать этот оператор goto. Но когда я применял его в своих прогах - ни каких глюков не происходило. Может быть по теории я и лох и всегда опираюсь не на неё, а на то, что я вижу на практике.
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Хоть и возможно заменить switch if'ом, но все таки между ними есть тонкая грань.
Пока этой грани не замечал. Если ты можешь, то объясни пожалуйста. Когда я писал на плюсах в Билдаре - то естественно каждый if проверялся. Оператор выбора и мои else if походу ничем не отличаются. Делая отладку проекта я ставя точки прерывания я наблюдал куда моя прога заходит. Ни какой разницы между этими операторами я не заметил. Да... кстати... если я не ошибаюсь... уже немного подзабыл... на плюсах break не ставится. Разработчики микрософта позаботились о возможный багах.
0
I ♥ C#
470 / 261 / 25
Регистрация: 07.05.2010
Сообщений: 567
30.03.2011, 17:53 22
Где-то читал, что switch использует бинарный поиск т.е. работает быстрее или, в худшем случае, с такой же скоростью как if.

Мне вот не понятно, зачем нужен break, если провалы в C# недопустимы. Вариант с пустыми case тоже не оправдание - сделали бы вот так:
C#
1
2
3
4
5
6
7
8
9
Switch(MyVar)
{
  Case 1..5:
    MessageBox.Show("1 2 3 4 5");
  Case 6: 
    MessageBox.Show("6");
  Case 7,15,23:
    MessageBox.Show("7 15 23");
}
По-моему это очевидное решение. Интересно почему от него отказались в пользу каких-то корявых пустых кейсов и брейков.
1
17 / 12 / 8
Регистрация: 24.03.2011
Сообщений: 36
31.03.2011, 00:43 23
Преподаватель по C# сказал что использовать if можно до "посинения", только все программисты придерживаются правила : «больше 7 if-конструкций использовать в коде крайне НЕ ЖЕЛАТЕЛЬНО»...

Сугубо моё мнение: «зачем программисты придумали switch, если есть if»? Они намного умнее нас и по этому читать конструкцию с switch намного приятнее...
Подумайте о том, что это сейчас некоторые из нас пишут программки одни, а когда будет командная игра??? Второй программист читая код может сойти с ума

Я за switch, не зря его придумали...
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
31.03.2011, 17:00 24
Цитата Сообщение от SSV Посмотреть сообщение
Пока этой грани не замечал. Если ты можешь, то объясни пожалуйста.
Грань не в реализации, быстродействии или удобстве, а в критерии применимости. Если в зависимости от значения некоторого аргумента идет переключение выполняемых действий - switch именно то что нужно.
Цитата Сообщение от SSV Посмотреть сообщение
Да... кстати... если я не ошибаюсь... уже немного подзабыл... на плюсах break не ставится.
Ставится.
0
31.03.2011, 17:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2011, 17:00
Помогаю со студенческими работами здесь

Найти ошибку в коде, если она есть вообще пожалуйста
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; #include &lt;utility&gt; using namespace...

Зачем использовать поля, если есть свойства?
Приветствую. Объясните новичку: для чего нужно использовать поля, если есть такая штука, как...

зачем нужны анонимус-функции? если есть {} и let
Часто вижу подобные куски кода ( function() { ... var a = 5; /// })(); undefined a...

Объясните зачем фреймворк, если есть CMS
Господа разработчики, объясните, пожалуйста, зачем нужно с нуля разрабатывать какой-то проект,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru