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