C++

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

Оператор множественного выбора – он же switch. Время от времени при программировании приходится прибегать к оператору switch. Он не особо популярен, но может быть незаменим при работе с временами года, месяцами, днями недели, и какими-либо другими перечислениями. Именно тут чаще всего он и используется.

Что такое оператор switch?

Оператор switch – это оператор множественного выбора. То есть когда условие нам позволяет выбрать условие одно из многих.

Синтаксис оператора switch

Синтаксис оператора switch

Как это работает? Мы пишем оператор switch, в скобках переменную, которая при определенном действии будет выдавать нам необходимое значение. А если мы не попали ни в одно значение, то выполним действие по умолчанию (default). Ветка default не является обязательной.

Давайте рассмотрим сразу на примере, как это может выглядеть?

Начнем с практики

Представьте, у нас есть номер дня недели от нуля до шести. Нам необходимо вывести значение этого дня.

Как решать?

Графическое представление задачи

Решение практической задачи

Вам не кажется, что мы слишком часто повторяемся?

А этого в программировании делать не стоит. В идеале однотипных конструкций быть не должно вовсе. Нам надо написать один раз функционал, а потом многократно его использовать в разных частях программы.

А для того чтобы нам решить нашу задачу по-другому, нам пригодится оператор switch.

Решение практической задачи через 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

Решение задачи медаль

Тернарный оператор

Бывают случаи, когда даже лишнюю строчку кода писать не хочется. И тогда нам на помощь приходит тернарный оператор. Он используется, когда нужно выбрать одно из двух значений, в зависимости от условия. Он значительно упрощает код.

Синтаксис тернарного оператора

Синтаксис тернарного оператора

  1. После переменной мы пишем условие;
  2. Затем вопросительный знак – мы как бы спрашиваем: а равно 5?
  3. То что написано после вопросительного знака, мы записываем в переменную;
  4. В противном случае, мы записываем в переменную то, что записано после двоеточия.

Как преобразовать тернарный оператор в if?

Пример тернарного оператора

Пример в if из тернарного оператора

Решение задач на тернарный оператор

Наибольшее

Даны два числа. Выведите наибольшее из них. Если числа равны, выведите любое из них.

Формат входных данных
Вводится два целых числа a и b (−231 <= a, b <= 231−1).
Формат выходных данных
Требуется вывести наибольшее из данных чисел.
Примеры
входные данные
1 2
42 13
выходные данные
2
42

Видео по теме урока

Решение задачи наибольшее

Tags

Related Articles

Leave a Reply

Back to top button
Close