Оператор Switch и тернарная операция

Оператор множественного выбора – он же switch. Время от времени при программировании приходится прибегать к оператору switch. Он не особо популярен, но может быть незаменим при работе с временами года, месяцами, днями недели, и какими-либо другими перечислениями. Именно тут чаще всего он и используется.
Что такое оператор switch?
Оператор switch – это оператор множественного выбора. То есть когда условие нам позволяет выбрать условие одно из многих.
Синтаксис оператора switch
Как это работает? Мы пишем оператор switch, в скобках переменную, которая при определенном действии будет выдавать нам необходимое значение. А если мы не попали ни в одно значение, то выполним действие по умолчанию (default). Ветка default не является обязательной.
Давайте рассмотрим сразу на примере, как это может выглядеть?
Начнем с практики
Представьте, у нас есть номер дня недели от нуля до шести. Нам необходимо вывести значение этого дня.
Как решать?
Вам не кажется, что мы слишком часто повторяемся?
А этого в программировании делать не стоит. В идеале однотипных конструкций быть не должно вовсе. Нам надо написать один раз функционал, а потом многократно его использовать в разных частях программы.
А для того чтобы нам решить нашу задачу по-другому, нам пригодится оператор switch.
Согласитесь, теперь наш код выглядит более приятно.
Обратите внимание, что после каждого действия мы ставим break. Почему он так важен? Дело в том, что если мы его не напишем, наша программа пойдет дальше по операторам, которые находятся ниже нашего значения, и выведет их на экран. Например, если переменная day будет равна 0 и break мы нигде не написали, то тогда на экран выведутся все дни недели, начиная с понедельника, а также значение по умолчанию.
Что такое break?
Break – это такой оператор, который завершает текущий блок. То есть прекратить выполнение этой операции. В нашем случае switch.
Как он работает?
Как только компилятор видит значение break. Он тут же начинает искать, а где тут границы блока? Открытие и закрытие фигурных скобок и называются границами блока.
Решение задач на switch
Медаль
Напишите программу, которая по номеру введённого места на пьедестале, выводит на экран материал, из которого сделана медаль призёра.
Формат входных данных
Вводится целое число n (1 <= n <= 231−1).
Формат выходных данных
Требуется вывести «GOLD» (золото), «SILVER» (серебро), «BRONZE» (бронза) при наличии медали или «NO MEDAL», если медали не присужено.
Примеры
входные данные
13
1
выходные данные
NO MEDAL
GOLD
Тернарный оператор
Бывают случаи, когда даже лишнюю строчку кода писать не хочется. И тогда нам на помощь приходит тернарный оператор. Он используется, когда нужно выбрать одно из двух значений, в зависимости от условия. Он значительно упрощает код.
Синтаксис тернарного оператора
- После переменной мы пишем условие;
- Затем вопросительный знак – мы как бы спрашиваем: а равно 5?
- То что написано после вопросительного знака, мы записываем в переменную;
- В противном случае, мы записываем в переменную то, что записано после двоеточия.
Как преобразовать тернарный оператор в if?
Решение задач на тернарный оператор
Наибольшее
Даны два числа. Выведите наибольшее из них. Если числа равны, выведите любое из них.
Формат входных данных
Вводится два целых числа a и b (−231 <= a, b <= 231−1).
Формат выходных данных
Требуется вывести наибольшее из данных чисел.
Примеры
входные данные
1 2
42 13
выходные данные
2
42