Image default
C++ Програмування

Оператор вибору варіантів switch

Ви вже встигли ознайомитись з оператором умовного переходу if. За його допомогою, при перевірці певного твердження на істинність, виконується або ігнорується деякий блок команд. Це дозволяє програмувати складніші алгоритми з можливістю вибору дій, які потрібно виконати.

Також, відомо, що один if можна вкладати в інший, поглиблюючи логіку та розглядаючи всі можливі варіанти поведінки програми. Рівень заглиблення та кількості вкладених if  залежить від складності умови та деталізації розроблюваного програмного продукту.

Розглянемо наступну логічну конструкцію

Як бачимо, вона дозволяє послідовно перевіряти певні значення та виконувати при цьому відповідні дії. Але що робити, якщо нам потрібно, наприклад, перевірити назву якого місяця було введено? Прописати  дванадцять вкладених if непросто, особливо, якщо враховувати можливість помилитися з фігурними дужками.

Для вирішення даної ситуації в С++ передбачений спеціальний оператор вибору (або оператор багатоваріантного розгалуження) switch, який послідовно порівнює значення виразу зі списком цілих чисел або символьних констант. Він дозволяє реалізувати перевірку певного значення з 16384  можливими варіантами (максимальна допустим кількість операторів case).

«Змінна або вираз для перевірки» має бути символом, цілим числом або змінною булевого типу. Як було сказано раніше, char та boolцілі типи з меншим допустимим значенням, ніж int. Але в контексті мови програмування вони відіграують дещо інші функції, ніж ті самі типи для збереження числових даних.

Оператором switch здійснюється послідовне порівняння значення виразу з константними значеннями, що вказані після кожного оператора case. Якщо знайдено збіг, то виконується відповідний блок команд, аж поки не буде досягнуто оператора break або не закінчиться оператор switch.

Якщо значення виразу не збігається  з жодною константою, тоді виконається оператор default. Ця частина оператора switch не є обов’язково. Якщо його не передбачено, то у випадку відсутності збігу не виконається жоден оператор.

Нижче наведено приклад коду елементарного калькулятора на С++

Ще один приклад використання оператора switch наведено знизу. Програма виводить назву дня тижня відповідно до заданого числового значення –  порядкового номера дня у тижні.

В наведених прикладах оператор switch лише виводив певні текстові повідомлення. Насправді, в блоки команд можна вкладати довільні оператори мови С++ і реалізувати цілі окремі алгоритми-підпрограми.

Related posts

Програмування розгалужень. Умовний оператор if()

Just_Programmer

Введення та виведення даних

Just_Programmer

Тернарний оператор С++

Just_Programmer

7 коментарів

Leave a Comment