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 降臨!
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
Post a Comment