&& (logical AND)
Оператор && (логический AND) возвращает true только если оба операнда одновременно true — удобен для проверки нескольких условий сразу.
Полная статья
Описание
Логический AND (&&) — это оператор, который проверяет, выполняются ли два условия одновременно. Результат равен true лишь тогда, когда оба операнда true. Если хотя бы один из них ложен, всё выражение тоже ложно.
Это именно то, что нужно, когда вы хотите выполнить какое-то действие только при совпадении нескольких условий сразу: например, кнопка нажата и датчик показывает нужное значение.
Пример кода
Оператор && чаще всего встречается внутри условия оператора if.
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) { // если ОБА переключателя в состоянии HIGH
// операторы
}
Где применяется
- Проверка диапазона: убедиться, что значение одновременно больше минимума и меньше максимума.
- Несколько кнопок: выполнить действие только когда нажаты две кнопки сразу.
- Состояние системы: продолжить работу, если и питание в норме, и связь установлена.
- Защита от ошибок: перед записью в массив проверить, что индекс не отрицательный и не выходит за границу.
Практические замечания
- Короткое замыкание вычислений: если левый операнд уже
false, правый операнд не вычисляется вовсе. Это важно помнить, если правая часть содержит вызов функции с побочными эффектами. - Не путайте
&&и&:&&— логический оператор, работает с булевыми значениями и возвращаетtrueилиfalse.&— побитовый оператор, работает с отдельными битами целых чисел. Использование одного вместо другого — частая ошибка, которую компилятор не всегда помечает как ошибку. - Скобки помогают читаемости: если выражение сложное, расставляйте скобки явно, чтобы не полагаться на приоритет операторов и не запутаться самому.
- Отладка через Serial Monitor: если условие не срабатывает так, как ожидается, выведите значения обоих операндов отдельно — это быстро покажет, какой из них оказывается ложным.