Больше вариантов: else if
С if и else программа выбирает из двух вариантов. Часто их больше. Футбольный матч, например, заканчивается одним из трёх способов: хозяева победили, гости победили или ничья. Для большего числа вариантов добавляют ветки else if, у каждой из которых своё условие:
int homeGoals = 3;
int awayGoals = 2;
if (homeGoals > awayGoals) {
std::cout << "Победили хозяева!" << std::endl;
} else if (homeGoals < awayGoals) {
std::cout << "Победили гости!" << std::endl;
} else {
std::cout << "Ничья!" << std::endl;
}Программа выведет:
Победили хозяева!Программа проверяет условия сверху вниз и выполняет блок первого истинного. Остальные ветки она пропускает, даже если некоторые из следующих условий тоже истинны. Блок else выполняется, только если ни одно условие не истинно. Веток else if можно добавить сколько нужно, всегда между if и else. Завершающий else необязателен: без него при отсутствии истинных условий не выполняется ничего.
Раз побеждает первое истинное условие, порядок условий важен:
int points = 95;
if (points >= 50) {
std::cout << "Зачёт" << std::endl;
} else if (points >= 90) {
std::cout << "Отлично" << std::endl;
}Программа выведет:
Зачёт95 баллов — отличный результат, но первое условие, points >= 50, уже истинно, так что до второго программа не доходит. Ветка, которая выводит Отлично, здесь никогда не выполнится, потому что любое число от 90 и выше тоже не меньше 50. Строгое условие нужно поставить первым: сначала points >= 90, потом points >= 50.
Задание
- 1
15 °C — это не погода для зимнего пальто. Между блоком
ifиelseдобавьте веткуelse ifс условиемtemperature > 10, которая выводитНаденьте куртку. - 2
Добавьте ещё одну ветку
else ifс условиемtemperature > 18, которая выводитНаденьте свитер, и изменитеtemperatureна20. Программа должна вывестиНаденьте свитер. Если она выводитНаденьте куртку, значит, условиеtemperature > 10стоит первым и перехватывает и 20 градусов: поднимите новую ветку выше него.