摘要:For語句是C語言程序設計中重要的循環語句之一,結構清晰、使用靈活。學習For語句應注意它同其它循環語句的區別和聯系,熟悉其執行流程;同時還要多練習,在編程實踐中牢固掌握它的使用方法。
關鍵詞:C語言程序設計For語句
For語句是C語言程序設計中重要的循環語句之一。由于For語句結構簡潔、明晰,使用靈活,其在C語言編程中應用廣泛。有經驗的編程人員更喜歡使用For語句編程實現各種各樣的循環。那么,我們如何掌握并運用For語句呢?可以從以下幾個方面把握。
1. 對比求異同
For語句和While語句的都是C語言中重要的循環語句,二者在本質上是一樣的,但表現形式有些區別。先看程序1和程序2的比較。
從程序1與程序2的對比中,可以得出:在While語句中,循環變量初始化、循環條件判斷和修改循環變量的功能都由單獨的語句實現,分別寫在循環體前或循環體中;而對于For語句,這些功能由多個表達式合并在一個控制塊中,寫在For語句的開始處。因此,一般我們可以將C語言中的For語句看作是While語句的簡化形式。
2. For語句流程詳解
從程序1與程序2的對比中,可以得出For語句的一般格式:
for(表達式1;表達式2;表達式3)
循環體語句
格式中,三個表達式所構成的語句用來控制循環,故又稱為循環控制語句。表達式1稱為初始化表達式;表達式2稱為條件表達式;表達式3稱為修正表達式。分別對應While語句中的控制變量初始化、循環條件判斷、循環控制變量的修改這三個功能語句。對For語句的執行過程,用語言形式描述如下:
第一步,計算表達式1的值;
第二步,求解表達式2的值,若值為真(非0或邏輯真),則執行第三步;若值為假(等于零或等于邏輯假),則執行第六步;
第三步,執行循環體語句;
第四步,求解表達式3;
第五步,轉到第二步繼續執行。
第六步,執行FOR語句后面的語句。
上述執行過程可用圖1所示語句指示圖表示:
3. 對For語句再做進一步的說明
For語句中的任何表達式都可以省略。當省略表達式1時,初始化就必須放在For語句前;當省略表達式2時,循環條件為永“真”,相當于死循環,故需在循環體中設定相應的語句(break)來退出循環;當表達式3省略時,應把修改循環控制變量的表達式放在循環體內部。注意:省略表達式時不能省略表達式后的分號。
如:求1+2+3+……+100的和,可以用下面的任一程序段。
for(i=1,sum=0;i<=100;i++)
sum=sum+i;/*程序段1*/
i=1;
for(;i<=100;i++)
sum=sum+i;/*程序段2*/
i=1;sum=0;
for(;i<=100;)
{sum=sum+i;
i++;
}/*程序段3*/
for(i=1,sum=0;i<=0;sum=sum+i++);/*程序段4*/
如果For語句的循環體由兩個或兩個以上語句組成,必須用花括號把它們括起來構成復合語句。如上面程序段3所示。
For語句中的表達式1和表達式3可以是一個簡單表達式,也可以是一個由逗號運算符連接起來的逗號表達式。如上面程序段1所示。
循環體可以是空語句,但空語句的分號不能省略。若循環體不是空語句,則不能在表達式的括號后面加分號。如上面程序段4所示。
4. 練習
為了更好的掌握For語句,接下來就是自己動手練習部分,可以自己出題自己編程,也可以參考下面的習題。注意:自己動手編程時要考慮For語句的變化。由此,每個題至少有9種以上的編寫方法,要一一去嘗試。
[例1]任意輸入10個數,求其最大數及最小數并打印輸出。
[例2]任意輸入若干個正數,求其最大數及最小數并打印輸出。
總結
通過問題→模型→應用的教學模式,可以清晰地認識到問題所求的僅是一種模型,而模型本身又是實際問題的一個簡化,故而通過這種現代啟發式教學方法運用,大家可熟練掌握并靈活運用For語句。
參考文獻:
[1]譚浩強.C程序設計.北京:清華大學出版社,1991.
[2]Kenneth C.Louden. Programming Languages Principles and Practice, Second Edition. Publishing House of Electronics Industry. 2003.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。