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

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

Пропуск ключового слова 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