Логические операции чаще всего используются в условии в инструкции if.
&& (логическое И)
Истина, только если оба операнда истинны.
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) { // считывает состояние двух контактов
// ...
}
Имеет значение true, если оба контакта получили значение HIGH.
|| (логическое ИЛИ)
Истина, если хотя бы один операнда истинен.
if (x > 0 || y > 0) {
// ...
}
Имеет значение true, если x или y, или оба больше 0.
! (логическое отрицание)
Истина, если операнд ложен.
if (!x) {
// ...
}
Имеет значение true, если x - false (т.е. x равно 0).
Предупреждение
Убедитесь, что вы ничего не перепутали и использовали логическое И && (двойной амперсанд), а не побитовую операцию & (один амперсанд). Это соврешенно разные операции.
Аналогично, не путайте логическое ИЛИ || (двойная вертикальная черта) побитовое ИЛИ | (одна вертикальная черта).
Побитовое отрицание ~ (тильда) значительно отличается по внешнему виду от логического отрицания ! (восклицательный знак), но вы все равно должны быть уверены, в том что именно вы хотите использовать.
Пример
if (a >= 10 && a <= 20){} // условие верно, если a больше 10, но меньше 20
Смотрите также:
if
& (побитовое И)
| (побитовое ИЛИ)
~ (побитовое НЕ)
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/Boolean |