Arduino 學習筆記 #13 「switch case」 vs 「if/else」

if else的判斷式用於篩選時非常好用(例如:分數大於60顯示及格,小於顯示不及格),但在有限答案時,使用switch case會更有效率
switch(變數){  //變數只能是整數(Integer)或字元(Character)
    case 條件一:  //條件內容為「變數」的數值或字元eg. 1, 2, A, hello...etc
        條件一成立時,執行的工作
        break;

    case 條件二:
        條件二成立時,執行的工作
        break;

    default:
        條件都不成立時,執行的工作
}

switch中的變數,會從上而下對比是否符合每個條件,若符合其中一個,則會執行該條件中的工作,遇到break後跳出,若忘記加上break,則會執行該條件下所有的任務。
例如:變數符合條件一,而條件一末端忘記加上break,則會開始執行條件二、三、四...直到執行完default的任務或遇到「}」後跳出

若條件都不符合,則會執行default中的任務,若沒有default,則會在讀取到「}」後跳出


小練習:輸入1時,在Monitor顯示「A」,輸入2時,顯示「B」,輸入其他字原則顯示「輸入錯誤」
void setup(){
  Serial.begin(115200);
}

void loop(){
  if(Serial.available()){
    int var = Serial.parseInt();
    switch(var){
      case 1:
        Serial.println('A');
        break;
      case 2:
        Serial.println('B');
        break;
      default:
        Serial.println("wrong guess!");
    }
  }
}



學習來源:
Arduino #12 - 分類帽 switch case 降臨!

Comments

Popular posts from this blog

Arduino 學習筆記#5 上拉電阻

Arduino 學習筆記#11 每按一次按鈕,切換一次燈的暗亮

Arduino 學習筆記#3 讀取接腳的狀態