else
if...else позволяет выстраивать цепочку условий: программа идёт по веткам сверху вниз и выполняет первую подходящую, а финальный else задаёт поведение по умолчанию.
Полная статья
Описание
Конструкция if...else расширяет возможности обычного if: вместо одной проверки можно выстроить цепочку условий, каждое из которых обрабатывает свой случай. Блок else выполняется тогда, когда условие в if оказалось false.
Цепочка проверок работает последовательно: программа идёт по ветвям сверху вниз и останавливается на первой, условие которой выполнилось. Код этой ветви запускается, остальные пропускаются. Если ни одно из условий не совпало, выполняется финальный блок else — он задаёт поведение по умолчанию. Завершающий else не обязателен: конструкция работает и без него.
Важно понимать: else if можно использовать как вместе с финальным else, так и без него, и наоборот. Количество веток else if не ограничено — их можно добавлять столько, сколько нужно для задачи.
Синтаксис
if (condition1) {
// выполнить действие A
}
else if (condition2) {
// выполнить действие B
}
else {
// выполнить действие C
}
Пример кода
Ниже приведена выдержка из кода системы датчиков температуры.
if (temperature >= 70) {
// Опасность! Выключить систему.
}
else if (temperature >= 60) { // 60 <= temperature < 70, температура в предупредительном диапазоне
// Внимание! Требуется вмешательство пользователя.
}
else { // temperature < 60, температура в нормальном диапазоне
// Норма! Продолжать обычную работу.
}
Где применяется
- Управление устройствами по диапазонам значений — например, включать разные режимы вентилятора в зависимости от показаний температурного датчика.
- Обработка команд — разбор входящих символов из Serial и запуск соответствующего действия для каждого.
- Светофор или индикация состояний — переключение светодиодов или дисплея в зависимости от текущего режима работы устройства.
- Меню на кнопках — разные реакции на нажатие разных кнопок в одном блоке опроса.
Практические замечания
- Условия проверяются строго по порядку. Если первое совпало — остальные не проверяются. Поэтому ставьте самые вероятные или приоритетные условия ближе к началу цепочки.
- Финальный
elseбез условия — хорошая страховка: он поймает любой случай, который вы не предусмотрели, и не даст программе «замолчать» при неожиданных данных. - Не путайте
=(присваивание) и==(сравнение) внутри условия. Записьif (x = 5)не сравнивает, а присваивает — и это частая ошибка новичков. - Если веток становится очень много и все они сравнивают одну переменную с конкретными значениями, рассмотрите
switch...case— он читается чище. - Фигурные скобки
{}не обязательны, если в ветке одна строка, но лучше всегда их ставить: это защищает от трудноуловимых ошибок при редактировании кода.