資源描述:
《C語(yǔ)言程序設(shè)計(jì)第五章:循環(huán)結(jié)構(gòu)ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、本章目標(biāo)理解為什么使用循環(huán)結(jié)構(gòu)熟練掌握while循環(huán)的使用熟練掌握do-while循環(huán)的使用理解while和do-while循環(huán)的區(qū)別熟練掌握f(shuō)or循環(huán)的使用循環(huán)的必要性#includevoidmain(){printf(“%d*%d=%2d%d*%d=%2d%d*%d=%2d“,1,1,1*1,1,2,1*2,1,3,1*3);printf(“%d*%d=%2d%d*%d=%2d%d*%d=%2d“,1,4,1*4,1,5,1*5,1,6,1*6);printf(“%d*%d=%2d%d*%d=%2d%d*%d=%
2、2d”,1,7,1*7,1,8,1*8,1,9,1*9);}輸出結(jié)果重復(fù)語(yǔ)句循環(huán)的必要性1×1=11×2=21×3=31×4=4…9×9=810+11+12+1有規(guī)律的變化...重復(fù)上個(gè)數(shù)字+1...goto語(yǔ)句goto語(yǔ)句稱為無(wú)條件轉(zhuǎn)向語(yǔ)句。它與if語(yǔ)句配合使用可以構(gòu)成循環(huán)。一般形式為:goto語(yǔ)句標(biāo)號(hào);注意:語(yǔ)句標(biāo)號(hào)是對(duì)語(yǔ)句的標(biāo)識(shí),應(yīng)是合法的標(biāo)識(shí)符,由英文字母、數(shù)字和下劃線組成;用戶可以根據(jù)程序執(zhí)行的需要對(duì)程序中的語(yǔ)句進(jìn)行標(biāo)識(shí)。語(yǔ)句標(biāo)號(hào)不能用一個(gè)整數(shù)表示。goto語(yǔ)句#includemain(){intn=1,sum
3、=0;loop:if(n<=100){sum=sum+n;n++;gotoloop;}printf(“1+2+3……+100=%d”,sum);}【例5-1】編寫(xiě)程序,用goto語(yǔ)句實(shí)現(xiàn)循環(huán)計(jì)算1+2+3……+100的和。圖5-1例5-1的運(yùn)行結(jié)果goto語(yǔ)句是非結(jié)構(gòu)化語(yǔ)句,它使得程序可以在某一位置無(wú)條件轉(zhuǎn)向任意位置,造成程序的流程不容易控制,因此結(jié)構(gòu)化程序設(shè)計(jì)一般不使用goto語(yǔ)句。for語(yǔ)句1.for循環(huán)語(yǔ)句for語(yǔ)句是C語(yǔ)言中專門(mén)用來(lái)實(shí)現(xiàn)循環(huán)的語(yǔ)句,其一般形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){語(yǔ)句;}分號(hào)用于分隔for循環(huán)
4、的三個(gè)表達(dá)式1234可以是賦值表達(dá)式,逗號(hào)表達(dá)式或函數(shù)調(diào)用表達(dá)式,通常是為循環(huán)中所使用的變量進(jìn)行初始化。可以是關(guān)系表達(dá)式或邏輯表達(dá)式,通常的表示循環(huán)控制的條件,在該條件成立時(shí)執(zhí)行循環(huán),否則結(jié)束循環(huán)。通常是賦值表達(dá)式或者算術(shù)表達(dá)式,它使得循環(huán)變量的值得到修改,使循環(huán)只能執(zhí)行有限次。for循環(huán)的執(zhí)行過(guò)程:(1)計(jì)算表達(dá)式1的值,即循環(huán)變量初始化;(2)計(jì)算表達(dá)式2的值,若其值非0,則執(zhí)行步驟(3);否則,執(zhí)行步驟(5);(3)執(zhí)行循環(huán)體;(4)計(jì)算表達(dá)式3,即改變循環(huán)變量的值,然后轉(zhuǎn)向步驟(2);(5)結(jié)束循環(huán),執(zhí)行for語(yǔ)句后面的語(yǔ)句。for語(yǔ)
5、句NY計(jì)算表達(dá)式3循環(huán)體計(jì)算表達(dá)式1for語(yǔ)句的下一條語(yǔ)句表達(dá)式2for語(yǔ)句的執(zhí)行流程圖for語(yǔ)句#includevoidmain(){intn,i;longf=1;printf(“請(qǐng)輸入n的值:”);scanf(“%d”,&n);for(i=1;i<=n;i++){f=f*i;}printf(“n!=%ld”,f);//輸出結(jié)果}【例5-2】輸入整數(shù)n,求n!。圖5-3例5-2的運(yùn)行結(jié)果【說(shuō)明】for循環(huán)中的“表達(dá)式1”、“表達(dá)式2”、“表達(dá)式3”都可以省略。若省略某個(gè)或多個(gè)表達(dá)式,則該表達(dá)式的功能必須在程序其它地方實(shí)
6、現(xiàn)。(1)“表達(dá)式1”省略,如例5-2中:for(i=1;i<=n;i++)f=f*i;可以改寫(xiě)為:i=1;for(;i<=n;i++)f=f*i;(2)“表達(dá)式2”省略,如語(yǔ)句:for(i=1;;i++)f=f*i;不判斷循環(huán)條件,循環(huán)將無(wú)終止的進(jìn)行下去。解決此問(wèn)題的方法,可以在循環(huán)體中加人break;語(yǔ)句,跳出循環(huán),將語(yǔ)句改寫(xiě)為:for(i=1;;i++){if(i>n)break;f=f*i;}(3)“表達(dá)式3”省略,則應(yīng)在循環(huán)體中改變i的值:for(i=1;i<=n;){f=f*i;i++;}(4)“表達(dá)式1”、“表達(dá)式2”、“表達(dá)式
7、3”同時(shí)省略:i=1;for(;;){f=f*i;i++;if(i>n)break;//條件滿足時(shí)跳出循環(huán)}while循環(huán)語(yǔ)句while循環(huán)的一般形式:while(表達(dá)式){循環(huán)體;}表達(dá)式的計(jì)算結(jié)果作為邏輯值進(jìn)行判斷,如果表達(dá)式的值為非0(“真”),則執(zhí)行循環(huán)體,如果表達(dá)式的值為0(“假”),則結(jié)束循環(huán)。循環(huán)條件:邏輯表達(dá)式、賦值表達(dá)式、函數(shù)調(diào)用表達(dá)式等while循環(huán)的執(zhí)行過(guò)程:(1)循環(huán)開(kāi)始,首先計(jì)算條件表達(dá)式的值,若為真,則執(zhí)行步驟(2);否則執(zhí)行步驟(4)。(2)執(zhí)行一次循環(huán)體;(3)計(jì)算條件表達(dá)式的值,若為真,返回步驟(2),否則執(zhí)
8、行步驟(4);(4)結(jié)束循環(huán)while循環(huán)語(yǔ)句while循環(huán)的執(zhí)行流程圖如圖5-4所示。圖5-4while循環(huán)執(zhí)行流程圖NY循環(huán)體表達(dá)式?while循環(huán)語(yǔ)句將例5-