С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.60
Larkin888
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 42
#1

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

21.06.2012, 20:57. Просмотров 4596. Ответов 8
Метки нет (Все метки)

Препод задал вопрос, я ответил, то что switch использует только int и char, возвращается не логическое выражение, а целое...

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

В чём отличие function от _function ? - C++
Ранее работал только с консольными приложениями, неоднократно использовал функцию для проверки существования/доступа к файлу (access)....

В чём отличие унарных и бинарных операторов? - C++
Подскажите пожалуйста, это унарный или бинарный оператор (а-b для комплексных чисел). Я знаю, что бинарный оператор, это когда два...

Объяснить в чём отличие статической переменной от константы - C++
Чем отличается статическая переменная от константы?

В чём отличие разных способов объявления переменных? - C++
в чем отличие int a(2); от int a=2; И как писать правильней

В чём отличие константного указателя и указателя на константу? - C++
int *const p1 и int const* p2 Объясните мне в чём тут отличие.

В чём отличие заголовочных файлов <iostream> и <iostream.h> ? - C++
Добрый день! Учу С++ в Microsoft Visual C++ 6.0. Листинг начинал с #include &lt;iostream&gt;, и программа не работала. Но когда начал с...

8
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,634
21.06.2012, 21:00 #2
switch - оператор множественного выбора, может обрабатывать различные варианты, в то время как if лишь один. Фактически, switch выглядит как множество if else if else ...
А работают они с выражениями, а не типами данных. От последних вобще ничего не зависит.
0
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
21.06.2012, 21:03 #3
Инструкция if позволяет сделать выбор между двумя ветвями выполняемыми программы.

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

А про условия вообще не понял.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,634
21.06.2012, 21:07 #5
Цитата Сообщение от soon Посмотреть сообщение
MrGluck, не совсем. У Evg это расписано
http://www.cyberforum.ru/blogs/18334/blog91.html

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

Вобще, я понимаю, что немного не полностью описываю этот оператор. Но объяснение на пальцах выглядит именно так.
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.06.2012, 21:13 #6
Цитата Сообщение от MrGluck Посмотреть сообщение
Насчет условий - я успел поправиться)
Ладно, тогда поясните по поводу
Цитата Сообщение от MrGluck Посмотреть сообщение
а не типами данных. От последних вобще ничего не зависит.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,634
21.06.2012, 21:30 #7
Цитата Сообщение от soon Посмотреть сообщение
Ладно, тогда поясните по поводу
Операторы обрабатывают выражение, а не переменные.
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.06.2012, 21:45 #8
Цитата Сообщение от MrGluck Посмотреть сообщение
Операторы обрабатывают выражение, а не переменные.
Ладно, хотя я все равно не понял, каким боком тут переменные. Я, собственно, почему уточнял: мне показалось, что, сказав "от типа данных ничего не зависит", вы имели в виду, что switch может обрабатывать любой тип данных.
0
Evg
Эксперт CАвтор FAQ
18382 / 6430 / 441
Регистрация: 30.03.2009
Сообщений: 17,850
Записей в блоге: 28
21.06.2012, 21:52 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Аргументом if'а является выражение логического типа, а количество альтернатив перехода по результату сравнения не может быть больше, чем количество разнообразных результатов логического типа. Т.е. у if'а могут быть не более двух альтернатив перехода (по true и по false)

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

Любой оператор switch можно написать через if'ы. Точно так же любой оператор if можно написать через switch
4
21.06.2012, 21:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2012, 21:52
Привет! Вот еще темы с ответами:

Оптимальная конструкция switch-case-while / while-switch-case - C++
Имеется конструкция типа: switch() { case 1: while() { ... }

While{switch{switch{break;}}} break выходит из while - C++
В общем необходимо конструкцию switch запускать в цикле, в каждом case X: стоит свой break;, да бы выполнился один case, а не все. Проблема...

Switch case внутри switch case - C++
Привет всем! Нужна помощь. Пишу калькулятор с консольным меню. Так вот, используется цикл while, внутри которого у меня switch...

Отличие // от /// и /** */ от /* */ - C++
В чем их отличия?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.