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 з функції.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

close

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 з функції.

Рішення

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

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

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

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

single

some-alt