Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Заблокирован

Оператор switch

10.02.2012, 02:19. Показов 1122. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Зависит ли
a) объектный код от порядка меток case и default в данном операторе?
б) если ответ на первый вопрос положителен, то тогда можно ли говорить, что при том или ином порядке меток case и default оператор switch выполняется быстрее ччем при другом?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2012, 02:19
Ответы с готовыми решениями:

Оператор switch
Ниже приведены три примера (1 и 2 работают, а 3 почему-то не работает). Говорит, что пропуск инициализации? Почему тогда 1 и 2 работают, а...

Оператор Switch
Нужно помощь с этим оператором может быть где-то направильно написал ??? со всеми функциями ответ выходет не верно, "res" - не...

оператор switch
Задача весьма проста, необходима для тренировки. Я должен использовать оператор свитч таким образом, что после ввода определенного символа...

3
Заблокирован
10.02.2012, 08:56
Белая магия компилятора может превратить свитч в хитрую структуру данных, наподобие map
Где ключ - это значение case, а значение по ключу - указатель на функцию, которая запустит блок case на выполнение.

Таким образом, в боевом коде свитч не будет пошагово проверять каждое значение case, а сразу прыгнет на функцию-блок нужного case.

Точная конструкция этой хитрой структуры зависит от компилятора с его оптимизациями.
Одно можно сказать совершенно наверняка:

В целом, конструкции типа:
C++
1
2
3
4
5
int val = 100500;
if (val == 1) { ... }
if (val == 2) { ... }
...
if (val == 100500) { ... }
Компилятору оптимизировать сложнее, чем свитч с аналогичной логикой.
Поэтому, можно считать, что switсh в среднем работает быстрее, за счет того, что потенциально лучше может быть оптимизирован.

Но вообще есть нюансы. Например, если конкретный блок отработавшего case не break`неццо, то сам блок switсh не закончит свою работу, а будит продолжаться поиск уже нового претендента case

Поэтому, независимо от того, во что блок switсh превратит белая магия компилятора, но на уровне самого исходного кода порядок следования case важен. Он определяет логику работы самого блока switсh.
2
Заблокирован
10.02.2012, 10:53  [ТС]
Не совсем, конечно, точно на вопросы, но все равно спасибо.
Очень даже интересные сведения.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
10.02.2012, 11:43
thick_int, иногда полезно заглянуть в FAQи...
Неочевидные ответы на простые вопросы
6 пункт.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2012, 11:43
Помогаю со студенческими работами здесь

Оператор switch C++
Помогите с кодом, пожалуйста. На скрине задание.

Оператор switch C++
Вместо вывода на экран отрицательных значений, работает default. Так же при вводе двухзначного числа выводит первую цифру этого же числа....

Оператор switch
Оператор switch: 1)Написать программу, где ожидается ввод символа с клавиатуры, после чего определяется, является ли этот символ буквой,...

Cи++. Оператор switch.
У меня такой вопрос. Есть задача: с 1 января 1990 года по некоторый день прошло n месяцев, определить название месяца текущего. Ну как...

Оператор switch
Дан номер телевизионного канала. Вывести на экран наиболее популярные программы этого канала


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru