許桂平
摘 要: C語言是一種廣泛使用的高級程序設計語言,文章對C語言中三種循環結構語句進行了分析和比較,使學生更容易理解和掌握。
關鍵詞: C語言 for循環 while循環 do-while循環
一、引言
C語言是一種廣泛使用的程序設計語言,它具有功能豐富、表達能力強、使用靈活方便、目標程序效率高等特點。像許多計算機語言一樣,C語言有三種基本結構:順序結構、選擇結構、循環結構。在這三種基本結構中,循環結構是最難理解的。
C語言中循環結構分為三種語句for,while,do-while。這三種語句都可以完成循環結構的功能,但在語法、程序流程等方面存在異同點。本文對這三種語句進行了分析和比較。
一般來講,循環結構程序設計要考慮兩個方面的問題:①循環條件:循環條件是循環結構設計的關鍵,它決定循環體重復執行的次數。循環條件常常由關系表達式或邏輯表達式表示;②循環體:需要重復執行的工作。它可以是一組順序結構的語句,也可以是一組具有選擇結構的語句,甚至還可以是一組具有循環結構的語句。
循環結構程序設計就是要正確描述循環條件,并分析問題的規律性,利用C語言提供的循環控制語句發揮具體的功能。
二、while循環和do-while循環的比較
從while循環的流程圖(圖1)和do-while循環的流程圖(圖2)可以看出while語句用于構成“當型”循環結構,do-while語句用于構成“直到型”循環。
2.循環的執行過程
while循環的執行過程為:首先計算條件表達式(循環條件)的值,若結果為“真”(非零),則執行循環體語句;然后再次計算表達式的值,重復上述過程,直到表達式的值為“假”(零)時結束循環,流程控制轉到循環結構的下一語句。
do-while循環的執行過程為:首先執行一次循環體語句,然后計算條件表達式(循環條件)的值。若結果為“真”(非零),則再次執行循環體,再計算表達式的值,如此重復下去,直到表達式的值為“假”(零)時,循環結束,流程控制轉到循環結構的下一語句。
3.兩種循環的相同點
循環體內一定要有改變循環繼續條件的語句,使得循環趨向于結束,否則循環將無休止地進行下去,即形成“死循環”。
為使循環正確運行,還要做好循環前的準備工作,在循環語句開始前要給循環控制變量和相關的變量賦初值。
4.兩種循環的不同點
while循環結構的特點是“先判斷,后執行”,如果條件表達式的值一開始就為“假”,則循環體一次也不執行;do-while循環結構的特點是“先執行,后判斷”,如果條件表達式的值一開始就為“假”,則循環體仍要執行一次。
三、for循環和while循環的比較
for語句是C語言提供的另一種應用靈活、功能強大的構成“當型”循環結構的循環語句。
1.循環格式
for(<表達式1>;<表達式2>;<表達式3>)
<循環體語句>;
2.功能
首先進行表達式1的運算,然后計算表達式2的值,若結果為真(非零),則執行循環體語句,最后進行表達式3的運算。然后回頭再次計算表達式2的值,若結果為“真”(非零),再執行循環體語句,最后進行表達式3的運算,然后再回頭,如此循環重復下去,直到計算表達式2的結果為“假”(零)時,循環結束,流程控制轉到循環結構的下一語句,其流程如圖3所示。
表達式1和表達式3通常是賦值表達式,一般用來實現對循環控制變量初始化和循環控制變量增(減)值。表達式2常常是關系表達式或邏輯表達式,但可以是其他類型的表達式,它表示循環繼續的條件,只要其值為非零,就可執行循環體,否則退出循環。
3.for循環和while循環的比較
for循環結構和while循環結構一樣,也具有“先判斷,后執行”的特點。for循環結構相當于如下形式的while結構:
四、三種循環結構的比較
實際應用中用到的大多數循環通常分為兩類:次數確定的循環和次數不確定的循環。
次數確定的循環,又稱計數型循環,通常采用計數的方式控制循環。循環控制變量用來控制循環的次數,循環控制變量要有:初始值、每次變化的增量及控制循環是否終止的終值和測試條件。這類循環通常采用for循環結構實現,當然也可以采用while和do-while循環結構。
次數不確定的循環,又稱條件型循環,通常采用標記值的方式控制循環。標記值表示繼續循環的條件。標記值必須不同于正常的數據項,以免發生混淆。這類循環通常采用while循環結構和do-while循環結構實現,當然也可以采用for循環結構實現。
三種循環結構是可以相互轉換的,for循環比while循環和do-while循環更為簡潔而高效,因而應用得更為廣泛。
五、結語
C語言循環結構是用C語言編程的基石,通過比較學習,學生可以提高學習效率,為以后編寫出緊湊、高效程序打下堅實基礎。
參考文獻:
[1]朱榮娟.淺析C語言循環結構教學思路.高中生學習師者,2013.12.
[2]袁國偉.C語言循環結構中for語句與while語句辨析.科技信息,200612.
[3]譚浩強.C語言程序設計教程.高等教育出版社,2002.