| 運算子 | 名稱 |
|---|---|
| && | AND(且) |
| || | OR(或) |
| ! | NOT(非) |
AND OR NOT 記得要大寫 不然我會強迫症發作
布林運算子與邏輯閘的運算方式類似(完全相同)
輸入為兩布林值(分別用 0 與 1 表示)
A, B 表示輸入 C 表示輸出
| A | B | C |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
顧名思義 AND(且)
A, B 皆為 true 時 輸出才會為 true
輸入為兩布林值(分別用 0 與 1 表示)
A, B 表示輸入 C 表示輸出
| A | B | C |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
若 A, B 其一為 true 則輸出 true
否則輸出 false
輸入為一布林值(分別用 0 與 1 表示)
A 表示輸入 B 表示輸出
| A | B |
|---|---|
| 1 | 0 |
| 0 | 1 |
會輸出與輸入值相反的布林值
輸入 true 則輸出 false
輸入 false 則輸出 true
AND: true && true (此值為 true)
OR : true || false (此值為 true)
NOT: !true (此值為 false)
以下為 Code 範例
bool a = true && true;
Serial.println(a); //印出 1
bool b = true && false;
Serial.println(b); //印出 0
bool c = false || false;
Serial.println(c); //印出 0
bool d = !true;
Serial.println(d); //印出 0
//若不懂為何會出現以上結果
//請去重讀上面或更以前的文章
if(true && true) {
Serial.println("Success Execute!"); //成功印出 Success Execute!
}
if(!false) {
Serial.println("Success Execute!"); //成功印出 Success Execute!
}
if(a && b) {
Serial.println("Success Execute!"); //無法被執行到
}
if(!b) {
Serial.println("Success Execute!"); //成功印出 Success Execute!
}
if(2 > 1 || 1 > 3) {
Serial.println("Success Execute!"); //成功印出 Success Execute!
}
// 2 > 1 為 true
// 1 > 3 為 false
// true || false => true
//因此 比較運算子 也可融入 布林運算子 中
//(比較運算子的輸出就是布林值)千萬 千萬 不要並列可能會造成邏輯矛盾的布林比較式
bool a = true && true && true && true; //此方式是可以的 並列幾個 AND 只要出現 false 結果就會是 false
bool b = true || true || true || true; //此方式是可以的 並列幾個 OR 只要出現 true 結果就會是 false
bool c = true && false || true && false; //不要使用此方法 因為無法預期優先預算會是算 AND 還是 OR
bool d = (true && false) || (true && false); //加上括弧可以明確表示 消除此矛盾
//(true && false) || (true && false)
//(false) || (false)
//false邏輯閘 鋼彈 變身!!!
