Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Оператор Switch | Вступ до Умовних Операторів
Умовні Оператори в C++

bookОператор Switch

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

В основному призначений для роботи з числовими значеннями, такими як цілі числа (int) та символи (char).

switch.h

switch.h

copy
12345678910111213141516
switch (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

main.cpp

copy
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

main.cpp

copy
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-оператора працюватиме так само, як і очікується, але загалом краще застосовувати саме switch, оскільки він забезпечує більш зрозумілий, читабельний і, що найважливіше, легший у підтримці та масштабований спосіб керування таким потоком виконання.

Пропуск ключового слова break у операторі switch може призвести до неочікуваної поведінки програми, оскільки код буде продовжувати виконання у наступних випадках. Однак навмисне опущення break може використовуватися для обробки кількох випадків у межах одного блоку коду. Такий підхід, відомий як fall-through, дозволяє обробляти пов’язані випадки разом.

main.cpp

main.cpp

copy
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 — вівторок тощо).

  1. Усередині функції getDayName використайте оператор switch для dayNumber:
    • Для кожного випадку з 1 до 7 присвойте відповідну назву дня ("Monday", "Tuesday", ..., "Sunday") змінній dayName.
    • Використовуйте оператор break після кожного випадку, щоб уникнути переходу до наступного.
    • Використайте випадок default, щоб присвоїти значення "Invalid day", якщо вхідне значення не входить у діапазон від 1 до 7.
  2. Поверніть значення змінної dayName з функції.

Приклад

getDayName(1)"Monday"
getDayName(5)"Friday"
getDayName(9)"Invalid day number"

Рішення

solution.cpp

solution.cpp

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 6
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you show me an example of a switch statement in code?

What happens if I forget to include a break statement in a switch case?

Can you explain more about the fall-through behavior in switch statements?

close

Awesome!

Completion rate improved to 7.69

bookОператор Switch

Свайпніть щоб показати меню

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

В основному призначений для роботи з числовими значеннями, такими як цілі числа (int) та символи (char).

switch.h

switch.h

copy
12345678910111213141516
switch (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

main.cpp

copy
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

main.cpp

copy
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-оператора працюватиме так само, як і очікується, але загалом краще застосовувати саме switch, оскільки він забезпечує більш зрозумілий, читабельний і, що найважливіше, легший у підтримці та масштабований спосіб керування таким потоком виконання.

Пропуск ключового слова break у операторі switch може призвести до неочікуваної поведінки програми, оскільки код буде продовжувати виконання у наступних випадках. Однак навмисне опущення break може використовуватися для обробки кількох випадків у межах одного блоку коду. Такий підхід, відомий як fall-through, дозволяє обробляти пов’язані випадки разом.

main.cpp

main.cpp

copy
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 — вівторок тощо).

  1. Усередині функції getDayName використайте оператор switch для dayNumber:
    • Для кожного випадку з 1 до 7 присвойте відповідну назву дня ("Monday", "Tuesday", ..., "Sunday") змінній dayName.
    • Використовуйте оператор break після кожного випадку, щоб уникнути переходу до наступного.
    • Використайте випадок default, щоб присвоїти значення "Invalid day", якщо вхідне значення не входить у діапазон від 1 до 7.
  2. Поверніть значення змінної dayName з функції.

Приклад

getDayName(1)"Monday"
getDayName(5)"Friday"
getDayName(9)"Invalid day number"

Рішення

solution.cpp

solution.cpp

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 6
single

single

some-alt