Чудово!
Completion показник покращився до 7.69single
Оператор Switch
Свайпніть щоб показати меню
Оператор switch також є однією з керуючих структур, що спрощує прийняття рішень у програмах. Він забезпечує ефективний спосіб оцінити вираз і виконати різні блоки коду залежно від значення цього виразу. Це особливо корисно при роботі з великою кількістю умов розгалуження.
В основному призначений для роботи з числовими значеннями, такими як цілі числа (int) і символи (char).
switch.h
12345678910111213141516switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
-
Вираз обчислюється один раз, і програма переходить до відповідного
caseзалежно від значення виразу; -
Кожен
caseпредставляє конкретне значення або набір значень, з якими вираз може збігатися; -
Оператор
breakвикористовується для виходу з блоку switch після виконання коду для певного випадку; -
defaultє необов'язковим і використовується, коли жоден із зазначених випадків не збігається з виразом. Він виконує роль загального варіанту.
Припустимо, ви володієте рестораном і хочете надати меню на основі вказаних числових кодів. Ось кодова реалізація пунктів меню.
main.cpp
1234567891011121314151617181920212223242526#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }
Так, це можна реалізувати за допомогою простого оператора if, і це виглядатиме приблизно так:
main.cpp
123456789101112131415161718192021222324#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }
Використання switch-оператора забезпечує більш зрозумілий, читабельний, а головне — легший у підтримці та масштабований спосіб керування таким потоком виконання, порівняно з іншими підходами.
Пропуск ключового слова break у операторі switch може призвести до неочікуваної поведінки програми, оскільки код буде продовжувати виконання у наступних випадках. Однак навмисне опущення break може використовуватися для обробки кількох випадків у межах одного блоку коду. Такий підхід, відомий як fall-through, дозволяє обробляти пов’язані випадки разом.
main.cpp
12345678910111213141516171819202122#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Swipe to start coding
Ви створюєте систему тижневого планувальника, яка повертає назву дня тижня за його номером (1 — понеділок, 2 — вівторок тощо).
- Усередині функції
getDayNameвикористайте операторswitchдляdayNumber:- Для кожного випадку з
1по7присвойте відповідну назву дня ("Monday","Tuesday", ...,"Sunday") зміннійdayName. - Використовуйте оператор
breakпісля кожного випадку, щоб уникнути переходу до наступного. - Використовуйте випадок
default, щоб присвоїти значення"Invalid day", якщо вхідне значення не знаходиться в межах від 1 до 7.
- Для кожного випадку з
- Поверніть значення змінної
dayNameз функції.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат