Arduino中的goto語句
goto是Arduino中的一種控制結構,類似於C語言,用於將程式流程轉移到程式中的另一個點。 強烈建議避免使用它,因為許多程式設計師都認為無需goto就能編寫任何你想要的演算法。
過度使用goto會使程式除錯非常困難,甚至在某些情況下會建立無法除錯的程式流程。 除非你絕對必須使用goto,否則建議繼續閱讀。
語法
使用goto的語法如下:
goto label; label: //statements
示例
以下示例演示了這一點:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println();
int x = random(5);
Serial.print("Value of x is ");Serial.println(x);
if (x % 2 == 0) {
goto even_print;
} else {
goto odd_print;
}
Serial.println("End of setup");
even_print:
Serial.println("x is even");
odd_print:
Serial.println("x is odd");
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Looping...");
delay(1000);
}輸出
序列埠監視器的輸出如下所示。請注意,我重置了Arduino幾次以獲得不同的x值。

可以看到,當x為偶數時,“x是奇數”也會被列印,因為odd_print標籤位於even_print標籤之後。因此,下一個列印語句緊跟在第一個列印語句之後。這表明even_print和odd_print只是標記;它們不會停止程式執行。
goto語句只是使用標籤更改程式流程,但在執行完一個標籤中的語句後,程式會線性地繼續執行下一行(在本例中為odd_print語句)。
此外,請注意“設定結束”從未被列印。這是因為兩個goto語句都使程式流程跳過了該行。這說明一旦執行完標籤內的語句,程式就不會返回到原來的行。它會線性地向前移動,除非當然它遇到另一個goto語句。這個例子應該讓你明白為什麼不鼓勵使用goto。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP