🧠 Урок 7 — Удобная альтернатива if-else
Как использовать switch в C++
🧠 Урок 7 — Удобная альтернатива if-else
Как использовать switch в C++
👋 Введение
Привет, ребята! Добро пожаловать на наш седьмой урок по C++!
Сегодня мы познакомимся с очень удобным инструментом — оператором switch.
📌 Он особенно полезен, когда нужно сравнить переменную с несколькими фиксированными значениями.
В отличие от if-else if, switch делает код более структурированным и читаемым.
🔍 Что такое switch и как он работает
Представьте, что у нас есть переменная day, и мы хотим определить день недели по её значению:
int day = 3;

switch (day) {
    case 1:
        cout << "Monday" << endl;
        break;
    case 2:
        cout << "Tuesday" << endl;
        break;
    case 3:
        cout << "Wednesday" << endl;
        break;
    case 4:
        cout << "Thursday" << endl;
        break;
    case 5:
        cout << "Friday" << endl;
        break;
    case 6:
        cout << "Saturday" << endl;
        break;
    case 7:
        cout << "Sunday" << endl;
        break;
    default:
        cout << "Invalid day" << endl;
}

🧪 Тестирование программы (дни недели)


Протестируем наш первый пример с переменной day.

🔹 Пример 1: Понедельник
💬 Вывод:
Monday
📘 Объяснение: значение 1 соответствует case 1, программа выводит "Monday", затем срабатывает break.
int day = 1;
🔹 Пример 2: Среда
💬 Вывод:
Wednesday
📘 Объяснение: значение 3 активирует case 3.
int day = 3;
🔹 Пример 3: Неверное значение
💬 Вывод:
Invalid day
📘 Объяснение: нет case 9, поэтому срабатывает блок default.
int day = 9;

✅ Почему switch — это удобно?

Кода становится меньше

Структура понятнее, чем у цепочек if-else if

Удобен, если значений много и они известны заранее

💡 Например, когда нужно проверить день, месяц, номер команды, режим и т.д.

🔍 Пошаговый разбор

🔹 Объявление переменной
Создаём переменную day и задаём ей значение 3. Именно её мы будем проверять в switch.
int day = 3;
🔹 Старт оператора switch
Программа переходит к проверке значения переменной day.
switch (day) {
🔹 Обработка вариантов
Если day == 3 — выводится Wednesday, и выполнение switch завершится благодаря break.
case 3:
    cout << "Wednesday" << endl;
    break;
🔹 Обработка ошибки
Если day не совпадает ни с одним из case, выполняется default.
default:
    cout << "Invalid day" << endl;

📘 Пример 2 — Определение месяца по номеру

Теперь создадим программу, которая по номеру месяца выводит его название:
#include <iostream>
using namespace std;

int main() {
    int month;

    cout << "Enter the month number (1-12): ";
    cin >> month;

    switch (month) {
        case 1: cout << "January" << endl; break;
        case 2: cout << "February" << endl; break;
        case 3: cout << "March" << endl; break;
        case 4: cout << "April" << endl; break;
        case 5: cout << "May" << endl; break;
        case 6: cout << "June" << endl; break;
        case 7: cout << "July" << endl; break;
        case 8: cout << "August" << endl; break;
        case 9: cout << "September" << endl; break;
        case 10: cout << "October" << endl; break;
        case 11: cout << "November" << endl; break;
        case 12: cout << "December" << endl; break;
        default: cout << "Invalid month number" << endl;
    }

    return 0;
}

🧪 Тестирование программы (месяцы)


Теперь проверим программу, определяющую месяц по номеру:

🔹 Пример 1: Январь
💬 Вывод:
January
📘 Объяснение: case 1 выполняется и программа выводит "January".
int month = 1;
🔹 Пример 2: Декабрь
💬 Вывод:
December
📘 Объяснение: значение совпадает с case 12.
int month = 12;
🔹 Пример 3: Некорректный номер
💬 Вывод:
Invalid month number
📘 Объяснение: такого номера месяца нет, поэтому выполняется default.
int month = 13;

🔍 Пошаговый разбор

🔹 Ввод данных
Пользователь вводит число от 1 до 12.
cin >> month;
🔹 Начало switch
Программа начинает сравнивать значение month с вариантами.
switch (month) {
🔹 Обработка месяцев
Каждое значение case соответствует конкретному месяцу. После вывода — break.
case 1:
    cout << "January" << endl;
    break;
🔹 Обработка некорректного ввода
Если введённое значение не входит в диапазон от 1 до 12 — программа сообщает об ошибке.
default:
    cout << "Invalid month number" << endl;

🏠 Домашнее задание


✍️ Напишите программу, которая спрашивает у пользователя, какую математическую операцию он хочет выполнить:

+ — сложение

- — вычитание

* — умножение

/ — деление

Программа должна вывести сообщение о том, какую операцию выбрал пользователь. Обязательно используйте switch для проверки символа операции. Удачи! Уверен(а), у тебя всё получится 🙌

📌 Заключение


Сегодня ты узнал:

как работает оператор switch;

как с его помощью упростить множество проверок;

чем он отличается от if-else.

А на следующем уроке мы перейдём к циклам — конструкциям, которые позволяют выполнять действия многократно. Они откроют перед тобой ещё больше возможностей!

🌐 Поддержка и сообщество


Не забудьте подписаться на наши соцсети, чтобы получать обновления и полезные советы!
📘 Разбор домашнего задания

Урок 7 — Удобная альтернатива if-else. Как использовать switch в C++
📘 Разбор домашнего задания
Урок 7 — Удобная альтернатива if-else. Как использовать switch в C++

🔔 Напоминание задания


На прошлом уроке вы получили задание:
✍️ Написать программу, которая спрашивает у пользователя, какую математическую операцию он хочет выполнить:
+ — сложение
- — вычитание
* — умножение
/ — деление
Программа должна вывести сообщение о выбранной операции, используя оператор switch.
💻 Пример реализации
#include <iostream>
using namespace std;

int main() {
    char operation;

    cout << "Enter an operation (+, -, *, /): ";
    cin >> operation;

    switch (operation) {
        case '+':
            cout << "You chose addition" << endl;
            break;
        case '-':
            cout << "You chose subtraction" << endl;
            break;
        case '*':
            cout << "You chose multiplication" << endl;
            break;
        case '/':
            cout << "You chose division" << endl;
            break;
        default:
            cout << "Invalid operation" << endl;
    }

    return 0;
}

🧪 Тестирование программы

🔹 Пример 1: Ввод плюса

💬 Вывод:
You chose addition
📘 Объяснение: программа переходит к case '+'.
operation = '+';

🔹 Пример 2: Ввод деления

💬 Вывод:
You chose division
📘 Объяснение: выполнен блок case '/'.
operation = '/';

🔹 Пример 3: Неверный символ

💬 Вывод:
Invalid operation
📘 Объяснение: программа не нашла совпадения и выполнила default.
operation = '%';

🧠 Пошаговый разбор

📥 Ввод значения

🧾 Пользователь вводит символ операции: +, -, * или /.
Он сохраняется в переменной operation.
cin >> operation;
🔄 Начало оператора switch
🔁 Программа проверяет значение operation и переходит к нужному блоку.
switch (operation) {
✅ Обработка случаев
🟢 Если пользователь ввёл +, программа выводит сообщение и завершает выполнение текущего блока через break.
case '+':
    cout << "You chose addition" << endl;
    break;
⚠️ Обработка ошибки
🛑 Если введённый символ не соответствует ни одному case, срабатывает default и сообщает об ошибке.
default:
    cout << "Invalid operation" << endl;
Завершение программы
Стандартное завершение программы.
return 0;
}

🧩 Заключение


Как видите, решение простое и понятное.
Надеюсь, вы справились с заданием! Если нет — теперь всё ясно.

📲 Присоединяйтесь к нам


Подписывайтесь на соцсети Innova School, чтобы не пропустить:
  • новые уроки
  • разборы заданий
  • полезные материалы по C++ и не только
🌟 Учитесь с нами шаг за шагом!
Made on
Tilda