愛伊米

Arduino--語法02

二、結構控制

2. 1 if

if (條件判斷語句)和==、!=、(比較運算子)

if語句與比較運算子一起用於檢測某個條件是否達成,如某輸入值是否在特定值之上等。

if語句的語法是:

本程式測試someVariable變數的值是否大於50。當大於50時,執行一些語句。換句話說, 只要if後面括號裡的結果(稱之為測試表達式)為真,則執行大括號中的語句(稱之為執行語句塊);若為假,則跳過大括號中的語句。if語句後的大括號可以省略。若省略大括號,則只有一條語句(以分號結尾)成為執行語句。

在小括號裡求值的表示式,需要以下運算子:

比較運算運算子:

X == y (X 等於 y)

x != y (x不等於y)

x < y (x 小於 y)

x > y (x 大於 y)

x

x >= y (x大於等於y)

警告:

注意使用賦值運算子的情況(如if (x = 10))。一個“=”表示的是賦值運算子,作用是將x 的值設為10 (將值10放入x變數的記憶體中)。兩個“=”表示的是比較運算子(如if (x== 10)), 用於測試x和10是否相等。後面這個語句只有x是10時才為真,而前面賦值的那個語句則永 遠為真。

這是因為C語言按以下規則進行運算if (x=10): 10賦值給x (只要非0的數賦值的語句, 其賦值表示式的值永遠為真),因此x現在值為10。此時if的測試表達式值為10,該值永遠 為真,因為非0值永遠為真。所以,if (x = 10)將永遠為真,這就不是我們執行if所期待的 結果。另外,x被賦值為10,這也不是我們所期待的結果。

if的另外一種分支條件控制結構是if。 。。else形式。

2. 2 if... else

If。 。。 else是比if更為高階的流程控制語句,它可以進行多次條件測試。比如,檢測模擬輸入的值,當它小於500時該執行哪些操作,大於或等於500時執行另外的操作。

else可以進行額外的if檢測,所以多個互斥的條件可以同時進行檢測。

測試將一個一個進行下去,直到某個測試結果為真,此時該測試相關的執行語句塊將被執行, 然後程式就跳過剩下的檢測,直接執行到if/else的下一條語句。當所有檢測都為假時,若存在else語句塊,將執行預設的else語句塊。

注意:else if語句塊可以沒有else語句塊。else if分支語句的數量無限制。

另外一種進行多種條件分支判斷的語句是switch case語句。

2. 3 for

for語句描述:for語句用於重複執行一段在花括號之內的程式碼。通常使用一個增量計數器計數

並終止迴圈。for語句用於重複性的操作非常有效,通常與陣列結合起來使用來操作資料、引腳。for迴圈開頭有3個部分:

(初始化;條件;增量計數)

{

//語句

}

“初始化”只在迴圈開始執行一次。每次迴圈,都會檢測一次條件;如果條件為真,則執行語 句和“增量計數”,之後再檢測條件。當條件為假時,迴圈終止。

程式設計提示

C語言的for迴圈語句比BASIC和其他電腦程式語言的for語句更靈活。除了分號以外, 其他3個元素都能省略。同時,初始化,條件,增量計算可以是任何包括無關變數的有效C語句,任何C資料型別包括float。這些不尋常的for語句可能會解決一些困難的程式設計問題。

例如,在增量計數中使用乘法可以得到一個等比數列:

for(in tx=2;x

println(x) ;

生成:2,3,4,6,9,13,19,28,42,63,94

另一個例子, 使用for迴圈使LED產生漸亮漸滅的效果:

2.4 switch case

switch…case語句和if語句相同, switch…case透過程式設計師設定的在不同條件下執行的程式碼

控制程式的流程。特別地, switch語句將變數值和case語句中設定的值進行比較。當一個case

語句中的設定值與變數值相同時, 這條case語句將被執行。

關鍵字break可用於退出switch語句, 通常每條case語句都以break結尾。如果沒有break語句, switch語句將會一直執行接下來的語句(一直向下) 直到遇見一個break, 或者直到switch語句結尾。

//例子:

2.5 while

while迴圈描述:while迴圈會無限的迴圈, 直到括號內的判斷語句變為假。必須要有能改變判斷語句的東西, 要不然while迴圈將永遠不會結束。這在您的程式碼表現為一個遞增的變數, 或一個外部條件,如感測器的返回值。

2.6 do...while

do…while迴圈與while迴圈執行的方式是相近的, 不過它的條件判斷是在每個迴圈的最後,所以這個語句至少會被執行一次,然後才被結束。

2.7  break

break用於退出do, for, while迴圈, 能繞過一般的判斷條件。它也能夠用於退出switch語句。

2.8 continue

continue語句跳過當前迴圈中剩餘的迭代部分(do, for或while) 。它透過檢查迴圈條件表示式,並繼續進行任何後續迭代。

2.9  return

終止一個函式,如有返回值,將從此函式返回給呼叫函式。

2.10 go to

程式將會從程式中已有的標記點開始執行