Условия: 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Ни одной