ブール演算子
&& (logical and:論理積)、 || (logical or:論理和) 、 ! (not:否定)
ブール演算子は、ifステートメントの条件内で使用できます。 trueまたはfalseに評価します。
&& (logical and:論理積)
両方のオペランドがtrueである場合にのみtrue。 例:
code:sample1.ino
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) { // read two switches
// ...
}
両方の入力がHIGHの場合にのみtrueです。 もう一つの例:
code:sample2.ino
if (a >= 10 && a <= 20){} // true if a is between 10 and 20
10 <= a <= 20とは言わないように注意してください! これはあなたが望むように動作しません。
aが10以上であるかどうかを個別にテストしなければならず、aが20以下であるかどうかをテストしてから&&を使用して結果を結合します。
|| (logical or:論理和)
いずれかのオペランドがtrueの場合はtrue。 例:
code:sample3.ino
if (x > 0 || y > 0) {
// ...
}
xまたはyのいずれかが0より大きい場合はtrueです。
! (logical not:論理否定)
オペランドがfalseの場合はtrue。 例:
code:sample4.ino
if (!x) {
// ...
}
xがfalse(つまり、xが0の場合)の場合はtrueです。
いくつかのアドバイス( 注意)
論理AND算子&&(ダブルアンパサンド)とビット演算のAND演算子&(単一のアンパサンド)を間違えないように注意してください。 まったく違う振る舞いです。
同様に、論理OR演算子||(ダブルパイプ)と ビット演算のOR演算子| (シングルパイプ)を混同しないでください。
ビット演算のNOT演算子~(チルダ)は、ブール演算子NOT演算子!(感嘆符、または "bang"と書かれていますが)とは大きく異なります。あなたが望むものがどれだけあるかを確認する必要があります。
関連項目
このドキュメントはleafLabs, LLC.が執筆し、たま吉が翻訳・一部加筆修正したものです。