| 運算子 | 名稱 |
|---|---|
| == | 等於 |
| != | 不等於 |
| > | 大於 |
| < | 小於 |
| >= | 大於等於 |
| <= | 小於等於 |
比較運算子的結果皆為布林值
註: 1 對應到 true 而 0 對應到 false
故
Serial.println(1 == 1); //印出 1
Serial.println(1 == 2); //印出 0
Serial.println(1 != 2); //印出 1等於 與 不等於 也可用於數字類型以外的物件
Serial.println('A' == 'A'); //印出 1
Serial.println('A' != 'C'); //印出 1
Serial.println(true == true); //印出 1
Serial.println(true == 1); //印出 1
//true 對應到 1 因此也相等而 大於小於等
Serial.println(1 > 2); //印出 false
Serial.println(true > false); //印出 true
//true 對應到 1 | false 對應到0
Serial.println('C' > 'A'); //印出 true
Serial.println('C' >= 'C'); //印出 true
Serial.println('C' < 'A'); //印出 false
Serial.println('C' <= 'C'); //印出 true
//因 字元 可轉為 ASCII 一種數字
//故出現的結果為兩字元ASCII碼的大小比較
//http://shihyu.github.io/books/apas01.html但 千萬不要 把比較運算子用於陣列
//創建一整數陣列a 並把陣列大小設為3
//並指派為 {1, 2, 3} 的陣列 (index 0 => 1, index 1 => 2, index 2 => 3)
int a[3] = {1, 2, 3};
//創建一整數陣列b 並把陣列大小設為3
//並指派為 {1, 2, 3} 的陣列 (index 0 => 1, index 1 => 2, index 2 => 3)
int b[3] = {1, 2, 3};
Serial.println(a == b); //印出 false
//原因是 在這邊 C++ 的 a 與 b 陣列的是兩陣列的 "記憶體位置"
//故
Serial.println(a == a); //印出 true
//a 的記憶體位置與 a 相同在晚些的文章會講到 if 與 for 或 while 等
他們的用法皆為 if(布林值) while(布林值) for(起始函式 ; 布林值 ; 結尾函式)
以及在賦值時也可使用
bool b = 2 > 1;
Serial.println(b); //印出 1
int n = 2 > 1;
Serial.println(n) //印出 1
//布林值被轉換成int 對應到 1 或 0
if(true) {
Serial.println("Success Execute!"); //成功印出 Success Execute!
}
if(b) {
Serial.println("Success Execute!"); //成功印出 Success Execute!
}
if(n) {
Serial.println("Success Execute!"); //成功印出 Success Execute!
}
if(false) {
Serial.println("Success Execute!"); //無法被執行到
}
if(0) {
Serial.println("Success Execute!"); //無法被執行到
}
if(2 > 1) {
Serial.println("Success Execute!"); //成功印出 Success Execute!
}
//2 > 1 為 true故 比較式 出來的數值 是 布林值
Comparing arrays for equality in C++ - Stack Overflow
註: 此篇有稍解釋為何陣列無法與陣列比較 因此與指標相關 故延伸閱讀可讀下一篇文
寫出這種爛 Code 我見一個打一個(X
