C語言程序控制()循環

1 循環的基本原理

● 大多數程序都包含循環或迭代。循環是在循環條件爲真時,需要計算機重複執行的一組計算機指令。
● 由於事先知道循環將要被執行的次數,所以有時也被稱計數控制的循環爲確定性循環。
● 由於循環次數事先是未知的,所以有時也稱標記控制的循環爲非確定型循環。循環體中必須包含有每次循環都要接收輸入數據的語句。
● 在計數控制的循環中,需要一個控制變量來記錄循環的次數。每當這組計算機指令被重複執行一遍時這個控制變量就要增值(或減值)。當執行完正確的循環次數後,循環結束,計算機繼續執行循環語句後面的下一條語句。
● 標記值表示"數據結束"。當所有的正常數據項都已經提供給程序後,就應輸入標記值。標記值要與正常的數據項截然不同

2 計數控制的循環

● 計數控制的循環要求定義控制變量(或者循環計數器)的變量名,控制變量的初值,每次循環後修改控制變量的增量值(或減量值),測試控制變量終值的條件(即判斷循環是否還要繼續進行)

3 for循環語句

● for循環語句能夠處理計數控制循環的所有細節。
● 當for循環語句開始執行時,它首先初始化控制變量,然後檢查循環繼續條件。若條件爲真,則執行循環體。控制變量隨後被增值,循環再次從檢查循環條件開始。這個處理過程將持續下去直到循環繼續變爲假。
● for語句的一般格式是
for ( ; ; ){
語句;
}
其中,初始化表達式用於對循環控制變量初始化(也可能同時定義它)條件表達式是循環繼續條件,增值表達式對循環控制變量進行增值。
● 逗號運算符用於確保對一組表達式的求值,是按照從左向右的順序,對其中的各個表達式依次求值。整個表達式組的值就等於其中最右邊那個表達式的值。
● for語句中的三個表達式是可選的。若將表達式省略,C語言則認爲循環繼續條件總是爲真,這將導致一個無限循環。若循環控制變量的初始化工作已經在循環之前完成了,則可以將初始化表達式省略掉。若對循環控制變量的增值工作是由for循環體中的語句完成的,或者根本就不需要增值,則增值表達式也可以省略。
● for語句中的增值表達式可以用循環體末尾的單獨一條語句來替換。
● for語句中用於分隔表達式的兩個分號是必需的,不能省略。
4 for語句:注意事項
● 初始化,循環體繼續條件及增量操作可以包含算術表達式。
● "增量值"可以是負數(相當於循環計數值遞減)。
● 若循環繼續條件一開始就爲假,則循環體將得不到執行。接着執行的是for語句之後的那條語句。

5 使用for語句的例子

● pow函數用於計算冪值。函數pow(x,y)計算x的y次冪。它接收兩個double型的實參,返回一個double型的結果。
● 與float類型一樣,double類型也是一種浮點數類型,但是相比float類型的變量,一個double類型的變量能夠存儲更大數量級和更高精度的數值。
● 使用類似pow這樣的函數,就應該在源程序中加入頭文件<math.h>。
● 轉換說明符%21.2f,表示在21個字符的域寬內,以小數點後面帶兩位數字的精度,按向右對齊的方式,顯示一個浮點數。
● 若想讓數據在域寬內左對齊,請在%與域寬之間加上一個減號(–)。

6 switch多重選擇語句

● 算法常常包含一系列選擇,即通過測試某個變量或表達式的值與事先指定的一組整型常量中的某一個是否相等,然後執行不同的操作,稱爲多重選擇。C提供了switch語句來處理這種情況。
● switch語句由一系列"情況(case)標籤",一個可選的"默認"(default)情況以及對應每一種情況需要執行的語句組成。
● getchar函數從鍵盤讀取一個字符並將其作爲一個整數返回。
● 字符通常存儲在類型爲char的變量中。由於字符在計算機中通常是用一個字節的整數來表示的,所以字符也可以存儲在任何整型變量中。因此,我們既可以將字符當成整數,也可以將字符當成字符,這取決於實際的應用需求。
● 計算機使用的都是ASCII字符集。
● 可以使用轉換說明符c%通過scanf函數來輸入字符。
● 賦值表達式作爲一個整體也是有值的。這個值就是等號左邊那個變量被賦予的值。
● EOF通常被用作一個標記值,是一個在頭文件<stdio.h>中定義的整數型符號常量。
● Linux/UNIX系統及其他許多系統中通過組合鍵(Ctrl+D)來輸入EOF標記
● Windows操作系統通過(Ctrl+Z)來輸入EOF標記。
● 關鍵字switch後面是用圓括號括起來的控制表達式。這個控制表達式需要與每一個case標籤相比較。一旦相等,就會執行標籤後對應的語句。如果找不到匹配,則執行default標籤後的語句。
● break語句使得程序控制轉到switch語句後面的第一條語句繼續執行。break語句防止所有case標籤後的對應語句都被執行。
● 每個case標籤下可以有一個或多個操作。switch語句與其他控制語句不同的就是:switch語句中一個case標籤下的多個操作不需要用一對花括號括起來。
● 將多個case標籤羅列在一起表示無論這些case中的哪一個發生匹配,將執行的操作都是一樣的。
● switch語錄只能用來測試一個整型常量表達式,即任何一個由字符常量和整型常量組成的整型常量的表達式。字符常量通常用單引號括起來。只有用單引號括起來的字符才被認爲是字符常量。整數常量就是一個整數值。
● 除了類型int和char之外,C語言還有short,long。所有整數類型還有unsigned(無符號)版本。

7 do…while循環語句

● do…while語句是在執行循環體後,才測試循環繼續條件。因此,循環體至少會被執行一次。當do…while循環結束後,計算機將執行while語句後面那條語句。

8 break語句和continue語句

● 在while,for,do…while或者switch語句中,break語句將導致程序立即從這些語句中退出,轉去執行這些語句的下一條語句。
● 在while,for,do…while語句中,continue語句將是控制流略過循環體中的剩餘語句,開始新的循環。在while,do…while結構中,執行continue語句後,將立即進行循環繼續條件的測試。for循環中,執行continue語句後,將執行增量表達式,然後測試循環繼續條件。

9 邏輯運算符

● 邏輯運算符可以用來將簡單條件組合成複雜條件。
● 與(&&),或(||),非(!)也爲邏輯取反。
● 當且僅當兩個簡單條件都爲真時,邏輯與才爲真。
● C語言將所有包含有關係運算符,相等運算符或邏輯運算符的表達式都定值爲0或1,儘管C將邏輯真的值定爲1,但是它也接受任何一個非0值爲邏輯真。
● 如果兩個簡單條件中有一個或兩個都爲真,那麼邏輯與爲真。
● 在計算包含運算符&&或||的表達式的值時一旦確定整個表達式的值,計算就會停止。

10 區分相等運算符==和賦值運 算符

● 將 = = 與=混淆使用,不會導致明顯的語法錯誤,但這個錯誤無疑是致命的。
● 推薦在書寫相等語句如, 定 義x等於7,可使用 7 = = x,將常量寫在左邊。
● 變量名只能出現在賦值運算符的左邊,所以常被稱爲左值(left value )
● 常量只能出現在賦值運算符的右邊,所以常被稱爲右值(right value)
● 左值可以做右值,而右值不可以做左值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章