При программировании роботов количество условных операторов в программах может быть очень большим. Даже в самом простом случае, чтобы определить направление движения робота, понадобятся 4, 8 или даже больше условий, в зависимости от режима движения робота по горизонтали. Обычно эти наборы условий относятся к одной и той же переменной, и выполняются в зависимости от ее значения.
Для более простого моделирования таких ситуаций и исключения каскадного использования операторов if в исходном коде программы, языки программирования оснащены отдельным оператором, который позволяет выбирать не одно из пмиадвух, а одно из множества возможных действий!
Этот оператор называется оператором множественного выбора. В языках C и C++ множественный выбор осуществляется оператором switch(<селектор>), где селектор – это переменная или выражение, чье значение анализируется оператором switch.
Структура оператора множественного выбора описывается следующей схемой.
Принцип работы оператора switch следующий: сначала вычисляется значение выражения selector. Затем вычисленное значение сравнивается, поочередно, со значениями каждой ветви case. В случае равенства с одним из значений выполняется ассоциированный данному значению блок операторов, а break переводит выполнение программы к следующему после switch оператору.
Если ни одно из значений ветвей case не равно значению выражения – селектора, тогда выполняется блок операторов ветви default. Если ветвь default отсутствует в операторе (ее присутствие не является обязательным) тогда switch не будет иметь никакого эффекта.
Давайте посмотрим, как преобразуется программа-калькулятор, если используется оператор switch:
Отметим, что программа приобрела еще один функционал – если введен символ несуществующей операции, будет отображаться сообщение ” Operație nedefinită!” и программа окончит свою работу кодом завершения 1.