Форум программистов, компьютерный форум CyberForum.ru

В чём отличие switch и if? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.60
Larkin888
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 42
21.06.2012, 20:57     В чём отличие switch и if? #1
Препод задал вопрос, я ответил, то что switch использует только int и char, возвращается не логическое выражение, а целое...

Она спросила, какие ещё есть отличия
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2012, 20:57     В чём отличие switch и if?
Посмотрите здесь:

C++ Отличие С от С++
C++ В чем отличие While от Do... While?
C++ Оптимальная конструкция switch-case-while / while-switch-case
отличие функтора от функции C++
C++ В чём отличие function от _function ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
21.06.2012, 21:00     В чём отличие switch и if? #2
switch - оператор множественного выбора, может обрабатывать различные варианты, в то время как if лишь один. Фактически, switch выглядит как множество if else if else ...
А работают они с выражениями, а не типами данных. От последних вобще ничего не зависит.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
21.06.2012, 21:03     В чём отличие switch и if? #3
Инструкция if позволяет сделать выбор между двумя ветвями выполняемыми программы.

Инструкция switch - это инструкция многонаправленного ветвления, которая позволяет выбрать одну из множества альтернатив.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.06.2012, 21:04     В чём отличие switch и if? #4
Фактически выглядит как множество if else if else ...
MrGluck, не совсем. У Evg это расписано
http://www.cyberforum.ru/blogs/18334/blog91.html

А про условия вообще не понял.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
21.06.2012, 21:07     В чём отличие switch и if? #5
Цитата Сообщение от soon Посмотреть сообщение
MrGluck, не совсем. У Evg это расписано
http://www.cyberforum.ru/blogs/18334/blog91.html

А про условия вообще не понял.
Насчет условий - я успел поправиться)

Вобще, я понимаю, что немного не полностью описываю этот оператор. Но объяснение на пальцах выглядит именно так.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.06.2012, 21:13     В чём отличие switch и if? #6
Цитата Сообщение от MrGluck Посмотреть сообщение
Насчет условий - я успел поправиться)
Ладно, тогда поясните по поводу
Цитата Сообщение от MrGluck Посмотреть сообщение
а не типами данных. От последних вобще ничего не зависит.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
21.06.2012, 21:30     В чём отличие switch и if? #7
Цитата Сообщение от soon Посмотреть сообщение
Ладно, тогда поясните по поводу
Операторы обрабатывают выражение, а не переменные.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.06.2012, 21:45     В чём отличие switch и if? #8
Цитата Сообщение от MrGluck Посмотреть сообщение
Операторы обрабатывают выражение, а не переменные.
Ладно, хотя я все равно не понял, каким боком тут переменные. Я, собственно, почему уточнял: мне показалось, что, сказав "от типа данных ничего не зависит", вы имели в виду, что switch может обрабатывать любой тип данных.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2012, 21:52     В чём отличие switch и if?
Еще ссылки по теме:

C++ Отличие bind2nd от binder2nd
C++ Отличие способов приведения
C++ Switch case внутри switch case

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,136
Записей в блоге: 26
21.06.2012, 21:52     В чём отличие switch и if? #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Аргументом if'а является выражение логического типа, а количество альтернатив перехода по результату сравнения не может быть больше, чем количество разнообразных результатов логического типа. Т.е. у if'а могут быть не более двух альтернатив перехода (по true и по false)

Аргументом switch'а является выражение целочисленного типа. Соответственно, количество альтернатив перехода аналогичным образом ограничено количеством разнообразных результатов выражения. Т.е. если аргумент типа char, то количество возможных альтернатив перехода не более 256, если аргумент типа short - не более 65536 и т.п.

Любой оператор switch можно написать через if'ы. Точно так же любой оператор if можно написать через switch
Yandex
Объявления
21.06.2012, 21:52     В чём отличие switch и if?
Ответ Создать тему
Опции темы

Текущее время: 05:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru