Условия: if, else и switch в C++

Условные конструкции C++: if/else, else if, вложенные условия, тернарный оператор и switch — как программа принимает решения.

Условный оператор позволяет выполнять разные блоки кода в зависимости от значения выражения. Без условий программа была бы простой последовательностью команд.

if / else

Базовая конструкция: если условие истинно — выполняется первый блок, иначе — второй.

#include <iostream>

int main() {
    int score = 72;

    if (score >= 90) {
        std::cout << "Отлично\n";
    } else if (score >= 60) {
        std::cout << "Хорошо\n";
    } else {
        std::cout << "Нужно подтянуться\n";
    }
    return 0;
}

Вывод:

Хорошо

Цепочка else if проверяется сверху вниз — как только нашлось истинное условие, остальные не проверяются.

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

Короткая форма для присваивания по условию: условие ? значение_если_истина : значение_если_ложь.

#include <iostream>

int main() {
    int a = 5, b = 3;
    int max = (a > b) ? a : b;   // выбираем большее
    std::cout << "Максимум: " << max << "\n";
    return 0;
}

Вывод:

Максимум: 5

switch

switch удобен, когда нужно проверить одну переменную на несколько конкретных значений. Без break выполнение «провалится» в следующий case.

#include <iostream>

int main() {
    int day = 3;

    switch (day) {
        case 1: std::cout << "Понедельник\n"; break;
        case 2: std::cout << "Вторник\n";     break;
        case 3: std::cout << "Среда\n";       break;
        case 4: std::cout << "Четверг\n";     break;
        case 5: std::cout << "Пятница\n";     break;
        default: std::cout << "Выходной\n";   break;
    }
    return 0;
}

Вывод:

Среда

Типичная ловушка: забытый break

switch (day) {
    case 1: std::cout << "Понедельник\n";   // нет break!
    case 2: std::cout << "Вторник\n";       // тоже выполнится
    case 3: std::cout << "Среда\n"; break;
}

Если day == 1, выведет три строки подряд. Это иногда используют намеренно («провал»), но обычно это ошибка.

Коротко

  • if / else if / else — основная конструкция ветвления, цепочка проверяется сверху вниз.
  • Тернарный оператор ? : — краткая форма для простых условий в одну строку.
  • switch — удобен при проверке одной переменной на конкретные значения.
  • Всегда ставьте break в switch, если не хотите «провала» в следующий case.
Проверьте себя
1. Что произойдёт, если в switch забыть break?
AОшибка компиляции
BВыполнение «провалится» в следующий case
CПрограмма зависнет
Dswitch выполнится с нуля
2. Что вернёт выражение: (5 > 3) ? "да" : "нет"?
A"нет"
B"да"
C5
DОшибка
3. Сколько ветвей else if можно добавить к if?
AТолько одну
BНе более двух
CСколько угодно
DНи одной
Поддержать проект