- 基于ARM的小功率電動汽車控制器開發
- 高志剛編著
- 1595字
- 2021-03-10 14:17:48
3.6 C語言中的語句
3.6.1 賦值語句
在C語言中,使用“ = ”完成變量賦值,其具體作用是將位于等號右側的表達式的數值賦值給等號左側的變量。賦值語句為在程序執行過程中更改變量的數值提供了條件。需要注意的是,一些自操作指令也是可以完成修改變量的任務的,因此可以作為一種特殊類型的賦值語句。
3.6.2 判斷語句
為了表明語句的含義,C語言中引入了一些英文單詞來標識語句作用并形成語法結構,這些單詞稱為C語言的關鍵字。
C語言中,利用判斷語句可以創造程序分支,為不同條件下執行不同的代碼提供條件。判斷語句的標準格式如表3-32所示,其中C語言支持逐次判斷多個邏輯表達式是否成立并執行相應的代碼塊的內容。當一個代碼塊的內容執行完畢后將跳出判斷語句。在實際使用中,可以根據需要省略邏輯表達式2以及之后代碼,即可以僅使用if語句而省略“else if”語句和“else”語句。
表3-32 條件判斷語句的用法

表3-33給出了一個利用判斷語句改變變量數值的例子。其作用是當變量a的數值大于10的時候,為變量b賦值100;當變量a不大于10并且大于5的時候,為變量b賦值50;當變量a不大于5并且大于0的時候,為變量b賦值20,否則為變量b賦值10。
表3-33 條件判斷語句的代碼示例

3.6.3 循環語句for
利用for循環語句可以重復執行一個代碼塊,當執行完畢一遍代碼塊之后,會再次檢查循環條件是否滿足,如果滿足則會再次執行該代碼塊。整個過程不斷重復,直至循環條件不再滿足,或者有其他指令終止了for循環語句的執行。表3-24給了利用變量i控制變量s的數值的例子。其中,語句for之后的小括號內的三個表達式分別為初始化、循環條件和尾語句。具體來說,i=1將變量i的數值設置為1,該語句只會執行一次,可以看作對循環語句中變量的初始化;i<=5為循環條件,即只有當該條件成立的時候,代碼塊中的內容才會被執行;i+= 1為尾語句,其會在代碼塊中的內容執行完畢之后再執行??梢钥闯?,在表3-34所示的代碼中,當i為1、2、3、4和5時,均會執行代碼塊的內容。之后i變為6,循環條件不再滿足,語句執行完畢。由于變量 s初值為0,因此當循環語句執行完畢后,s的數值為0+1+2+3+4+5=15。
表3-34 循環語句“for”的代碼示例

3.6.4 循環語句while
利用 while循環語句可以在某條件滿足的情況下,重復執行特定的代碼塊。while語句之后的小括號內為循環條件,當循環條件成立的時候,代碼塊中的內容會被執行一遍;之后會再次判斷循環條件是否成立,如果成立則再次執行代碼塊中的內容。如此重復,直至循環條件不成立。表3-35給出了一個示例,根據變量 i的數據改變變量s的數值??梢钥闯?,當i為1、2、3、4、5的時候,循環條件均成立,因此s進行自加操作,之后i變為6,循環條件不再成立,語句結束。最終s的數值為0+1+2+3+4+5=15。
表3-35 循環語句“while”的代碼示例

3.6.5 循環語句do/while
利用do/while循環語句可以執行一個代碼塊,之后判斷循環條件是否成立,若成立則再次執行該代碼塊。如此不斷循環,直至某次條件不再成立。注意基于do/while的循環語句的特征為先運行后判斷,即當運行完一次代碼塊之后再判斷條件是否成立,如果成立則會再次運行該代碼塊。而單純是用while構成的循環語句的特點是先判斷后運行,即首先判斷循環條件是否成立,成立后才會運行相應的代碼塊。表3-36中給出了一個利用do/while構成的循環語句,仍然是以變量i為循環條件,修改變量s的數值。s的最終結果為0 + 1 + 2 + 3 + 4 + 5 = 15。
表3-36 循環語句“do/while”的代碼示例

3.6.6 循環終止語句
當循環條件不滿足的時候,循環語句會終止執行。除此之外,還可以用關鍵字break和continue來打斷循環語句的執行。其中break的作用是終止整個循環語句,即跳轉到循環語句之后的代碼中;而continue的作用是終止當次的循環語句,之后判斷下次循環條件是否成立,若成立則繼續執行循環語句的內容。為了對二者的區別進行對比,表3-37給出了利用變量i修改變量s1和變量s2的數值的代碼。其中關于變量s1的代碼中,使用了break語句,而關于變量s2的代碼中,則使用了continue語句。二者均根據i是否等于2來變更程序分支。
表3-37 循環終止語句的代碼示例
