《第6章 C控制語句:循環》由會員分享,可在線閱讀,更多相關《第6章 C控制語句:循環(34頁珍藏版)》請在裝配圖網上搜索。
1、,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第,6,章,C,控制語句:循環,for,do,while,C,語言的循環語句,while,for,dowhile,循環的本質,循環就是當某個條件,(,循環條件,),為真時,計算機重復執行的一組語句。,兩種循環,計數器控制循環,預先知道循環次數,標志控制循環,預先不知道循環次數,計數器控制循環,計數器控制循環需要,(,1,)一個控制變量(循環計數器),(,2,)控制變量的初始值,(,3,)每次通過循環時,修改(增加或減少)控制變量的值。,(,4,)測試控制變量,判斷循環是否應該繼續,計數器控制循環,#inc
2、lude,int main(),int i=1;,while(i=10),printf(%dn,i);,+i;,return 0;,#include,int main(),int i=0;,while(+i=10),printf(%dn,i);,return 0;,i,:,循環控制變量,提示:,因為浮點數可能只是近似值,所以不要用浮點數,(float,和,double),作為循環控制變量,使用整數作為循環控制變量,盡量避免超過三層的控制語句嵌套。,簡單的說,盡量避免操作三重的循環。,注意代碼編寫規范,特別是注意代碼的縮進,6.5 for,循環語句,#include,int main(),int
3、 i=1;,while(i=10),printf(%dn,i);,i+;,return 0;,#include,int main(),int i;,for(i=1;i=10;i+),printf(%dn,i);,return 0;,for,循環語句的格式,for(,表達式,1,;表達式,2,;表達式,3,),循環體;,表達式,1,:給循環控制變量賦初值,表達式,2,:循環條件,表達式,3,:改變循環控制變量的值,for,循環語句,for,語句的流程圖,注意:,for(,表達式,1,;表達式,2,;表達式,3,),循環體;,表達式,1,只會執行一次。,問題:,求,2100,之間所有偶數的和,問題
4、,6.12,:,使用,for,循環產生一個立方表,數學函數,#include,double,pow(double,x,double y),求,x,的,y,次方,for,語句:注意事項與經驗,(,1,)初始化、循環條件何遞增都能夠包含算術表達式。,例如:假定,x=2,y=10,語句,for(j=x;m=4*x*y;j+=y/x),和語句,for(j=2;j=80;j+=5),等價,(,2,)控制變量的值可以遞增,也可以遞減,(,3,)表達式一 只執行一次。,使用,for,語句示例,把控制變量的值從,1,改變到,100,,每次遞增,1,。,把控制變量的值從,100,改變到,1,,每次遞增,-1,(
5、也就是遞減,1,),使用步長為,7,把控制變量的值從,7,改變到,77,使用步長為,2,把控制變量的值從,20,改變到,2,按照,2,、,5,、,8,、,11,、,14,、,17,、,20,這樣的值的順序改變控制變量的長度。,按照,99,、,88,、,77,、,66,、,55,、,44,、,33,、,22,、,11,、,0,這樣值的順序改變控制變量的值,6.6,更多賦值語句,+=,-=,*=,/=,%=,6.7,逗號運算符,逗號運算符從左向右運算,整個表達式的值是最右邊一個表達式的值,6.8 do/while,循環語句,do,循環體,while(,表達式,);,while(,表達式,),循環體
6、,while,語句先測試循環條件,再執行循環體,do/while,語句先執行循環體,再測試循環條件,問題:,顯示,1,10,之間的所有整數,do/while,循環的流程圖,true,false,action(s),condition,6.9,選擇哪種循環,C,語言的三種循環語句是可以互相轉換的,一般來說,計數器控制循環使用,for,語句,標志控制循環使用,while,語句,問題,求,(,精確到小數點后第,5,位,),問題,從鍵盤輸入一個大于,2,的整數,判斷這個數是不是素數。,(,素數是指除了,1,和它自身之外,不能被任何數整除的數,),7.6,循環輔助手段:,break,和,continue
7、,4.7 switch,多重選擇語句,switch(,表達式),case,常量,1,:,case,常量,2,:,case,常量,3,:,case,常量,4,:,.,default:,switch/case,流程圖,true,false,.,.,.,case a,case a action(s),break,case b,case b action(s),break,false,false,case z,case z action(s),break,true,true,default action(s),問題:,寫一個程序,輸入以,a,b,c,d,e,為等級的學生成績。統計其中各個分數的人數個數
8、。輸入以,EOF,結束。,EOF:,在,stdio.h,頭文件中定義的符號整形常量。它具有一個整型值。其值在各個系統中不一樣。通常是,-1,。,ANSI,標準僅規定,,EOF,是負的整型值。,在,Unix,、,Linux,系統中,,EOF,通過鍵入組合鍵,輸入。,在,Windows,系統中,,EOF,通過鍵入組合鍵,輸入。,break,default,程序中對 換行符、制表符、空格符 的處理,case n:,case t:,case :break;,注意:,switch,語句只能夠用于測試常量整型表達式,也就是字符常量和整型常量的任意組合,這個組合的值是常量整數值。,4.9 break,和,continue,語句,break,和,continue,語句用于改變控制流。,break,用于,while,、,for,、,do/while,、,switch,語句。,break,語句造成程序從循環語句或,switch,語句中退出,執行該語句后的第一條語句。,continue,語句用于,while,、,for,、,do/while,語句。,continue,語句的作用是跳過語句體中剩下的語句,并執行循環的下一次迭代。,注意:,使用,continue,語句時,注意不要跳過改變 控制變量 的語句!,