0Pricing
C++ Academy · Урок

Ветвление: if-else, тернарный оператор, switch-case

Выбирайте между цепочками if-else, тернарными выражениями и операторами switch для понятного ветвления.

«Ветвление: if-else, тернарный оператор, switch-case» — бесплатный урок C++ Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.

Инструкция if

Базовая условная конструкция. Тело выполняется, когда условие истинно. Фигурные скобки необязательны для одной инструкции, но всегда рекомендуются.

int score = 85;
if (score >= 60) {
    std::cout << "Pass\n";
}

Цепочки if-else

Проверяйте альтернативы с помощью else if и завершающей else. Выполняется первая истинная ветвь.

if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";

Булевы условия

Подходит любое выражение, которое можно преобразовать в bool. Указатели считаются ложными, если равны null, а целые числа — если равны нулю. Для ясности указывайте намерение явно.

Инициализация в if (C++17)

C++17 позволяет объявлять переменную внутри if. Область видимости переменной ограничена телом if-else.

if (auto it = map.find(key); it != map.end()) {
    std::cout << it->second;
}

Тернарный оператор

condition ? a : b возвращает одно из двух значений. Отлично подходит для простого выбора, но плохо — для вложенной логики.

int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";

Вложенные тернарные операторы: избегайте их

Вложенные тернарные операторы трудно читать. Вместо них используйте if-else или вынесите логику во вспомогательную функцию.

// Hard to read
auto label = (n < 0) ? "neg" : (n == 0) ? "zero" : "pos";

// Clearer
std::string label;
if (n < 0) label = "neg";
else if (n == 0) label = "zero";
else label = "pos";

Инструкция switch

Сравнивает одно значение с несколькими константами. Для каждой ветви нужен break, иначе выполнение перейдёт к следующему варианту.

switch (day) {
    case 1: std::cout << "Mon"; break;
    case 2: std::cout << "Tue"; break;
    default: std::cout << "?";  break;
}

Намеренный переход к следующей ветви

Объединяйте несколько вариантов, использующих один и тот же код. В C++17 появился маркер [[fallthrough]], сообщающий об этом компилятору.

switch (c) {
    case 'a': case 'e': case 'i': case 'o': case 'u':
        std::cout << "vowel"; break;
    default:
        std::cout << "consonant";
}

Ограничения switch

switch работает только с целочисленными типами и типами перечислений. Для строк используйте if-else или хеш-таблицу.

Инициализатор в switch (C++17)

Как и в if, в заголовке switch можно объявить переменную.

switch (auto value = compute(); value) {
    case 0: ...
    default: ...
}

Шаблон: отображение для поиска

Для ветвления по строковым ключам std::unordered_map может быть понятнее, чем цепочка if-else.

std::unordered_map<std::string, std::function<void()>> commands = {
    {"start", []{ start(); }},
    {"stop",  []{ stop();  }}
};
if (auto it = commands.find(cmd); it != commands.end())
    it->second();

Быстрая проверка

Что произойдёт, если в case конструкции switch нет break, а следующий вариант не пуст?

Итоги

Используйте if-else для общего ветвления, тернарный оператор — для краткого выбора значения, а switch — при сравнении одного значения с множеством целочисленных констант. Инициализирующие инструкции C++17 упрощают управление областью видимости.

Часто задаваемые вопросы

Урок «Ветвление: if-else, тернарный оператор, switch-case» бесплатный?

Да — полный текст урока «Ветвление: if-else, тернарный оператор, switch-case» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Ветвление: if-else, тернарный оператор, switch-case»?

Выбирайте между цепочками if-else, тернарными выражениями и операторами switch для понятного ветвления. Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C++ Academy?

Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Ветвление: if-else, тернарный оператор, switch-case»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C++ Academy?

Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Ветвление: if-else, тернарный оператор, switch-case
  2. Шаблоны циклов: for, while, do-while
  3. Цикл for на основе диапазона с контейнерами
  4. Досрочный возврат, break, continue и goto
← Назад к C++ Academy