Switch в C++

Оператор выбора Switch() в С++

Бывают случаи, когда у нас есть необходимость сделать проверку на что-то и исходя из результата сделать определённое действие. Например, калькулятор.

Если нажали «+«, значит сложить, нажали ««, значит вычесть и тому подобное.

Можно организовать такую логику через оператор выбора if()..else

Думаю Вы заметили, что перед переменной znak стоит звёздочка, зачем она?
Это не умножение, это указатель. Сейчас не задавайтесь глубоко вопросом что же такое указатель, о нём Вы узнаете подробно чуть позже. В C++ работа с символьными переменными непростая задача. Например, двойные и одинарные кавычки — это разные вещи. Чтобы эффективно и корректно извлечь из памяти компьютера наши символы, в данном случае, нужен указатель. Сейчас это просто необходимая вещица, не более того.

Данная конструкция уже выглядит громоздко, хотя у нас всего четыре варианта для действий, а если будет десять вариантов? А если двадцать пять? Это будет кошмарная конструкция!

По этой причине был придуман оператор выбора Switch, где каждый вариант действий помещается в контейнер case. Данный оператор значительно упрощает жизнь программистов.

Рассмотрим всё тот же пример с калькулятором, но с использованием Switch.

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

break нужно указать в конце контейнера case за тем, чтобы у нас не пошла проверка дальше. Сейчас у нас такой принцип работы алгоритма: если символ равен ‘+‘, то складываем, если не равна смотрим равна ли переменная символу ‘‘, если не равна смотрим равна ли переменная знаку ‘*‘, да, равна, значит умножаем числа и завершаем проверку.

Если break не делать, то проверка будет идти до самого конца наших case‘ов, а этого нам не надо, зачем просить компьютер сравнивать то, что мы заведомо знаем не верно?

Default() необходим для того, чтобы сделать какое-то действие, если ни одно условие в контейнерах case не выполнилось

Конструкция получается куда более понятной и красивой. Принцип работы алгоритма аналогичен примеру с if()..else.

В контейнер case можно писать всё что угодно и сравнивать с чем угодно.

 

Таким нехитрым образом мы познакомились с Оператор выбора Switch().

Post Author: Nikulux

Добавить комментарий