Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpEnSw 95 of 150 menu
◀ ▶

Ветки switch для перечисления в C++

Конструкция switch принимает переменную типа enum class и сравнивает ее с константами в метках case. Каждая ветка заканчивается break, иначе выполнение провалится дальше.

В case пишут полное имя константы, как Color::red. Запишем функцию, которая по дню недели возвращает короткую метку, и выведем результат для пятницы:

#include <iostream> #include <string> enum class Day { monday, tuesday, wednesday, thursday, friday, saturday, sunday }; std::string label(Day day) { switch (day) { case Day::monday: return "start"; case Day::tuesday: return "mid"; case Day::wednesday: return "mid"; case Day::thursday: return "mid"; case Day::friday: return "end"; case Day::saturday: return "rest"; case Day::sunday: return "rest"; } return ""; } int main() { std::cout << label(Day::friday) << "\n"; return 0; }

Несколько констант можно обработать одной веткой, если перечислить их через запятую в одной метке case. Запишем проверку выходного дня и выведем ответ для воскресенья:

#include <iostream> enum class Day { monday, tuesday, wednesday, thursday, friday, saturday, sunday }; bool isWeekend(Day day) { switch (day) { case Day::saturday: case Day::sunday: return true; case Day::monday: case Day::tuesday: case Day::wednesday: case Day::thursday: case Day::friday: return false; } return false; } int main() { std::cout << isWeekend(Day::sunday) << "\n"; return 0; }

Объявите enum class Season с константами spring, summer, autumn и winter. Напишите функцию isWarm с параметром Season: для summer и spring верните true, для остальных - false. Вызовите с Season::winter и выведите результат.

Объявите enum class Role с константами guest, user и admin. Дана переменная:

Role role = Role::user;

С помощью switch для переменной role запишите в code число: guest - 0, user - 1, admin - 2. Выведите code.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить