第5章 循環(huán)程序設(shè)計(jì).ppt_第1頁(yè)
第5章 循環(huán)程序設(shè)計(jì).ppt_第2頁(yè)
第5章 循環(huán)程序設(shè)計(jì).ppt_第3頁(yè)
第5章 循環(huán)程序設(shè)計(jì).ppt_第4頁(yè)
第5章 循環(huán)程序設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 C語(yǔ)言程序設(shè)計(jì),第 5 講,第5章循環(huán)程序設(shè)計(jì),掌握C語(yǔ)言中while循環(huán)的用法。 掌握C語(yǔ)言中do-while循環(huán)的用法。 掌握C語(yǔ)言中for循環(huán)的用法。 能對(duì)for語(yǔ)句和while語(yǔ)句進(jìn)行正確的轉(zhuǎn)換。 掌握并能熟練地運(yùn)用循環(huán)的嵌套設(shè)計(jì)。,目標(biāo)要求,第5章循環(huán)程序設(shè)計(jì),while和do-while循環(huán) for循環(huán) 循環(huán)的嵌套 break語(yǔ)句與continue語(yǔ)句 for循環(huán)與while循環(huán)的轉(zhuǎn)換 典型例題評(píng)析 小結(jié) 課后作業(yè),講課提綱,第5章循環(huán)程序設(shè)計(jì),5.2.1 while循環(huán) 5.2.2 do-while循環(huán) 5.2.3 while循環(huán)和do-while循環(huán)的比較,5.2 while

2、和do-while循環(huán),第5章循環(huán)程序設(shè)計(jì),5.3.1 for語(yǔ)句的一般形式 5.3.2 for語(yǔ)句的殊形式,5.3 for循環(huán),第5章循環(huán)程序設(shè)計(jì),5.5.1 break語(yǔ)句 5.5.2 continue語(yǔ)句,5.5 break語(yǔ)句與continue語(yǔ)句,第5章循環(huán)程序設(shè)計(jì),while語(yǔ)句的格式: while(表達(dá)式) 語(yǔ)句(組) while語(yǔ)句的流程圖,5.2.1 while循環(huán),第5章循環(huán)程序設(shè)計(jì),用法說(shuō)明: 對(duì)于while語(yǔ)句的學(xué)習(xí),應(yīng)注意以下幾點(diǎn): 如果循環(huán)體包含1個(gè)以上的語(yǔ)句,即復(fù)合語(yǔ)句時(shí),應(yīng)該用大括弧括起來(lái),否則while語(yǔ)句的循環(huán)體只有1個(gè)語(yǔ)句,將會(huì)出現(xiàn)算法上的錯(cuò)誤。 在循環(huán)體

3、內(nèi)必須有循環(huán)趨于結(jié)束的語(yǔ)句,否則將導(dǎo)致死循環(huán)。 在循環(huán)開(kāi)始前,當(dāng)循環(huán)條件不滿足時(shí),while語(yǔ)句中的循環(huán)體將1次都不執(zhí)行。,5.2.1 while循環(huán),第5章循環(huán)程序設(shè)計(jì),do-while循環(huán)的格式: do 循環(huán)體語(yǔ)句 while(表達(dá)式);,5.2.2 do-while循環(huán),第5章循環(huán)程序設(shè)計(jì),do-while循環(huán)的執(zhí)行流程,5.2.2 do-while循環(huán),第5章循環(huán)程序設(shè)計(jì),用法說(shuō)明: 在使用do-while循環(huán)時(shí)應(yīng)注意以下幾個(gè)要點(diǎn): 關(guān)鍵字“do”后無(wú)任何符號(hào)。 關(guān)鍵字“while”后的表達(dá)式要使用小括弧括起來(lái),并且括弧外一定要添加分號(hào)“;”,否則將出現(xiàn)語(yǔ)法錯(cuò)誤。 循環(huán)體中如果包含多條

4、語(yǔ)句,同樣應(yīng)該使用大括弧括起來(lái)作為一條復(fù)合語(yǔ)句,否則出現(xiàn)算法上的錯(cuò)誤。 在循環(huán)體內(nèi)也必須有使循環(huán)趨于結(jié)束的語(yǔ)句。,5.2.2 do-while循環(huán),第5章循環(huán)程序設(shè)計(jì),從形式上講,while語(yǔ)句要比do-while語(yǔ)句簡(jiǎn)單些,while語(yǔ)句表達(dá)式的括弧外沒(méi)有“;”,而do-while語(yǔ)句表達(dá)式括弧外則有“;”。 在一般情況下,用while循環(huán)和do-while循環(huán)處理同一問(wèn)題時(shí),若兩者的循環(huán)體部分是一樣的,它們的結(jié)果也是一樣的。但是,如果while語(yǔ)句后面的表達(dá)式的值一開(kāi)始就為假”時(shí),兩種循環(huán)的結(jié)果是不同的。,5.2.3 while循環(huán)和do-while循環(huán)的比較,第5章循環(huán)程序設(shè)計(jì),for循

5、環(huán)的基本格式: for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句,5.3.1 for語(yǔ)句的一般形式,第5章循環(huán)程序設(shè)計(jì),for循環(huán)的執(zhí)行流程圖:,5.3.1 for語(yǔ)句的一般形式,第5章循環(huán)程序設(shè)計(jì),用法說(shuō)明。 在使用for循環(huán)時(shí),必須注意以下要點(diǎn): for語(yǔ)句的圓括弧后沒(méi)有“;”如果在for語(yǔ)句的圓括弧后添加“;”雖然不會(huì)發(fā)生語(yǔ)法錯(cuò)誤,但是此時(shí)的循環(huán)體將變?yōu)?個(gè)空語(yǔ)句,可能使程序不能獲得正確的結(jié)果。 “表達(dá)式1”、“表達(dá)式2”和“表達(dá)式3”通常稱為for循環(huán)的3個(gè)分量,均可以為任意表達(dá)式,相互之間使用“;”分開(kāi)。for語(yǔ)句中的圓括弧內(nèi)有且只有兩個(gè)“;”,第3個(gè)表達(dá)式后沒(méi)有“;”。 3個(gè)表達(dá)式的用

6、途各不相同:“表達(dá)式1”在循環(huán)前對(duì)循環(huán)控制變量進(jìn)行初始化;“表達(dá)式2”用來(lái)判斷循環(huán)條件是否成立;“表達(dá)式3”用來(lái)修改循環(huán)變量的值。 for語(yǔ)句中的循環(huán)體語(yǔ)句可以是一個(gè)單獨(dú)的語(yǔ)句,也可以是一個(gè)復(fù)合語(yǔ)句。當(dāng)是復(fù)合語(yǔ)句時(shí),一定要用大括弧將其括起來(lái),否則將會(huì)出現(xiàn)算法上的錯(cuò)誤。 3個(gè)表達(dá)式中的某一個(gè)或幾個(gè)可以省略,但是相應(yīng)的分號(hào)必須保留,例如: for(; ;) 循環(huán)控制變量賦初值只進(jìn)行1次,一旦循環(huán)體被執(zhí)行,立即進(jìn)行修改循環(huán)變量的操作。,5.3.1 for語(yǔ)句的一般形式,第5章循環(huán)程序設(shè)計(jì),for語(yǔ)句的一般形式中的“表達(dá)式3”可以省略,此時(shí)分號(hào)同樣不能省略。此外,還必須設(shè)法保證循環(huán)變量的增值。例如:

7、for(n=1;n10;n+) s=s+n; 等效于: for(n=1;n10;) s=s+n; n+; ,5.3.2 for語(yǔ)句的殊形式,第5章循環(huán)程序設(shè)計(jì),for語(yǔ)句的一般形式中的“表達(dá)式1”和“表達(dá)式3”均可以省略,只保留“表達(dá)式2”和兩個(gè)分號(hào)。此時(shí)既要在for語(yǔ)句之前給循環(huán)變量賦初值,又要設(shè)法保證循環(huán)變量的增值。例如: for(n=1;n10;n+) s=s+n; 等效于: n=1; for(;n10;) s=s+n; n+; ,5.3.2 for語(yǔ)句的殊形式,第5章循環(huán)程序設(shè)計(jì),此外,“表達(dá)式2”也可省略,如果省略“表達(dá)式2”,不會(huì)造成語(yǔ)法上的錯(cuò)誤。但是,如果循環(huán)體內(nèi)沒(méi)有循環(huán)趨于結(jié)束

8、的語(yǔ)句,程序?qū)⑦M(jìn)入死循環(huán)。一般不提倡這種省略,尤其對(duì)于初學(xué)者更是如此。,5.3.2 for語(yǔ)句的殊形式,第5章循環(huán)程序設(shè)計(jì),二重循環(huán)的結(jié)構(gòu): 由for語(yǔ)句構(gòu)成的二重循環(huán)結(jié)構(gòu)的格式為: for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句1; for(表達(dá)式4;表達(dá)式5;表達(dá)式6) 語(yǔ)句2; 語(yǔ)句3; ,5.4 循環(huán)的嵌套,第5章循環(huán)程序設(shè)計(jì),二重循環(huán)的執(zhí)行順序?yàn)椋?以第1層for循環(huán)為入口,通過(guò)“表達(dá)式1”對(duì)循環(huán)控制變量賦初值,接著使用“表達(dá)式2”進(jìn)行條件判斷。若“表達(dá)式2”為“真”,則執(zhí)行語(yǔ)句1、第2層for循環(huán)和語(yǔ)句3(注意:語(yǔ)句2是第2層for語(yǔ)句的循環(huán)體)。 當(dāng)?shù)?層for循環(huán)規(guī)定的循環(huán)次數(shù)全

9、部執(zhí)行完后,執(zhí)行語(yǔ)句3。至此,第1層for循環(huán)的第1次循環(huán)結(jié)束。接下來(lái)進(jìn)行第1層for循環(huán)的下1次循環(huán),一直到“表達(dá)式2”的值為“假”為止。,5.4 循環(huán)的嵌套,第5章循環(huán)程序設(shè)計(jì),在使用二重循環(huán)時(shí)應(yīng)注意以下幾點(diǎn): 語(yǔ)句1、第2層for循環(huán)和語(yǔ)句3以復(fù)合語(yǔ)句的形式作為第1層for循環(huán)的循環(huán)體。 語(yǔ)句1、第2層for循環(huán)和語(yǔ)句3是并行的,程序運(yùn)行時(shí)按順序執(zhí)行。 語(yǔ)句1和語(yǔ)句3可以省略。當(dāng)沒(méi)有語(yǔ)句1和語(yǔ)句3時(shí),可以省略大括弧。當(dāng)有語(yǔ)句1或語(yǔ)句3時(shí),必須要用大括弧將其括起來(lái)作為1個(gè)復(fù)合語(yǔ)句,否則,將會(huì)出現(xiàn)算法上的錯(cuò)誤,5.4 循環(huán)的嵌套,第5章循環(huán)程序設(shè)計(jì),使用格式: break; 用法說(shuō)明: br

10、eak后面不跟任何表達(dá)式或語(yǔ)句,使用簡(jiǎn)單方便,其形式為: break; break語(yǔ)句只用在switch選擇分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。,5.5.1 break語(yǔ)句,第5章循環(huán)程序設(shè)計(jì),使用格式: continue; 在使用continue語(yǔ)句時(shí)注意以下要點(diǎn): continue語(yǔ)句后面不跟任何表達(dá)式或語(yǔ)句,使用簡(jiǎn)單方便,其形式為:continue; continue語(yǔ)句只能在循環(huán)結(jié)構(gòu)中使用,使用范圍比break語(yǔ)句還窄。,5.5.2 continue語(yǔ)句,第5章循環(huán)程序設(shè)計(jì),總結(jié): 通過(guò)學(xué)習(xí)和對(duì)比,我們可以得出以下結(jié)論:程序執(zhí)行到continue語(yǔ)句后只終止本次循環(huán),程序會(huì)繼續(xù)進(jìn)行下1次循環(huán),整個(gè)循

11、環(huán)并不一定會(huì)終止。而程序執(zhí)行到break語(yǔ)句后將無(wú)條件地結(jié)束整個(gè)循環(huán),程序轉(zhuǎn)向循環(huán)結(jié)構(gòu)后的下1條語(yǔ)句。,5.5.2 continue語(yǔ)句,第5章循環(huán)程序設(shè)計(jì),將while循環(huán)轉(zhuǎn)換為for循環(huán)。 while循環(huán)轉(zhuǎn)換成for循環(huán)的步驟為: 在while語(yǔ)句的表達(dá)式的前后添上“;”。 將while語(yǔ)句前的給循環(huán)變量賦初值的語(yǔ)句變?yōu)閒or語(yǔ)句的“表達(dá)式1”。 將while語(yǔ)句中的給循環(huán)變量增值的語(yǔ)句變?yōu)閒or語(yǔ)句的“表達(dá)式3”。 將“while”變?yōu)椤癴or”。 說(shuō)明:for語(yǔ)句的使用靈活、形式多樣,所以轉(zhuǎn)換后的for語(yǔ)句形式可能有多種,但它們的功能都是相同的。,5.6 for循環(huán)與while循環(huán)的轉(zhuǎn)

12、換,第5章循環(huán)程序設(shè)計(jì),將for循環(huán)轉(zhuǎn)換為while循環(huán)。 for循環(huán)轉(zhuǎn)換成while循環(huán)的步驟為: 將“表達(dá)式1”放在for語(yǔ)句之前并使其成為1個(gè)賦值語(yǔ)句。 將“表達(dá)式3”放在for語(yǔ)句的循環(huán)體內(nèi),使其作為循環(huán)體的最后1個(gè)語(yǔ)句。 將“for”變?yōu)椤皐hile”。 去掉“表達(dá)式2”前后的“;”,將“表達(dá)式2”作為while語(yǔ)句的表達(dá)式。,5.6 for循環(huán)與while循環(huán)的轉(zhuǎn)換,第5章循環(huán)程序設(shè)計(jì),1.求1+2+3+-+100的值,試編程完成其功能。 #include void main() int i,s; s=0; i=1; while(i101) s=s+i; i+; printf(“s

13、=%dn”,s); ,5.7 典型例題評(píng)析,第5章循環(huán)程序設(shè)計(jì),2.木馬板凳三十三,百個(gè)腿腿地下翻。試編程求解:有多少條木馬和有多少條板凳。 #include void main() int m,n; for(m=0;m34;m+) for(n=0;n26;n+) if(3*m+4*n=100) ,5.7 典型例題評(píng)析,第5章循環(huán)程序設(shè)計(jì),3. 輸出1020中所有的素?cái)?shù)和能被3整除的數(shù)的個(gè)數(shù),試編程完成其功能。 #include #include void main() int m,n,i,flag; n=0; for(m=10;m=20;m+) if(m%3=0) n+;/*對(duì)每一個(gè)m的值進(jìn)

14、行是否能被3整除的判斷的統(tǒng)計(jì)*/ flag=1; for(i=2;i= sqrt(m);i+) if(m%i=0) flag=0; /*當(dāng)不是素?cái)?shù)時(shí)立即對(duì)變量flag賦值0值*/ if(flag=1) printf(“%d ”,m);/*只有當(dāng)flag的值為1即m為素?cái)?shù)時(shí)才輸出m*/ printf(“nn=%dn”,n); ,5.7 典型例題評(píng)析,第5章循環(huán)程序設(shè)計(jì),4. 36塊磚,36人抬,男搬4,女搬3,兩個(gè)小孩抬一磚,要求一次搬完,問(wèn)男、女、小孩各需若干。試編程完成其功能。#include #include void main() int w,m,c; for(m=0;m=9;m+) f

15、or(w=0;w=12;w+) c=36-m-w; if(4.0*m+3.0*w+0.5*c=36.0) printf(“m=%d w=%d c=%dn”,m,w,c); ,5.7 典型例題評(píng)析,第5章循環(huán)程序設(shè)計(jì),或者: #include void main() int w,m,c; for(m=0;m=9;m+) for(w=0;w=12;w+) for(c=0;c=78;c+) if(4.0*m+3.0*w+0.5*c=36.0 ,5.7 典型例題評(píng)析,第5章循環(huán)程序設(shè)計(jì),5.今有一樓梯,每步跨2階,最后余1階;每步跨3階,最后余2階;每步跨5階,最后余4階;每步跨6階,最后余5階;每步

16、跨7階,最后正好到達(dá)樓頂。試編程計(jì)算樓梯的總階數(shù)。 解一: #include void main() int lad; lad=7; while(lad%2!=1|lad%3!=2|lad%5!=4|lad%6!=5) lad=lad+7; printf(“l(fā)ad=%dn”,lad); ,5.7 典型例題評(píng)析,第5章循環(huán)程序設(shè)計(jì),解二: #include void main() int lad; for(lad=7; ;lad=lad+7) if(lad%2=1 ,5.7 典型例題評(píng)析,第5章循環(huán)程序設(shè)計(jì),While循環(huán)是1種“當(dāng)型”循環(huán);而do-while語(yǔ)句是1種“直到型”循環(huán)。對(duì)于whi

17、le循環(huán)而言,只有當(dāng)條件表達(dá)式的值為“真”時(shí)才執(zhí)行循環(huán)體。對(duì)于do-while語(yǔ)句而言,先無(wú)條件地執(zhí)行1次循環(huán)體再判斷條件表達(dá)式的值,因此循環(huán)體至少被執(zhí)行1次。 兩種while循環(huán)的關(guān)系為:當(dāng)兩者的循環(huán)體相同,并且當(dāng)?shù)?次判斷while后面的表達(dá)式時(shí)其值為“真”時(shí),兩種循環(huán)得到的結(jié)果相同。否則,二者得到的結(jié)果不相同。 for語(yǔ)句的形式較為復(fù)雜,有3個(gè)表達(dá)式和1個(gè)循環(huán)體語(yǔ)句。3個(gè)表達(dá)式均可省略,但必須在程序其他相應(yīng)的位置(循環(huán)語(yǔ)句前、循環(huán)體內(nèi)等位置)補(bǔ)充必要的賦值、增值等語(yǔ)句。,5.8 小結(jié),第5章循環(huán)程序設(shè)計(jì),對(duì)于循環(huán)體,如果循環(huán)體由多個(gè)語(yǔ)句構(gòu)成,必須用大括弧括起來(lái)作為1個(gè)復(fù)合語(yǔ)句來(lái)處理,否則就會(huì)出現(xiàn)算法錯(cuò)誤。在進(jìn)行程序的調(diào)試時(shí),特別要注意這點(diǎn),因?yàn)榇罄ɑ〉挠袩o(wú)不會(huì)造成語(yǔ)法上的錯(cuò)誤,程序編譯時(shí)系統(tǒng)不會(huì)報(bào)錯(cuò)。 break語(yǔ)句和continue語(yǔ)句主要用于循環(huán)的流程控制,兩者在用法上有顯著差別。break語(yǔ)句用于結(jié)束整個(gè)循環(huán)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論