第08課-循環(huán)控制.ppt_第1頁
第08課-循環(huán)控制.ppt_第2頁
第08課-循環(huán)控制.ppt_第3頁
第08課-循環(huán)控制.ppt_第4頁
第08課-循環(huán)控制.ppt_第5頁
免費預(yù)覽已結(jié)束,剩余14頁可下載查看

下載本文檔

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

文檔簡介

1、第八課 循環(huán)控制,8.1 概述,循環(huán):就是在滿足一定條件時,重復(fù)執(zhí)行一段程序。 C語言中用如下語句實現(xiàn)循環(huán): 1、用goto語句和if語句構(gòu)成循環(huán)。 2、用while語句構(gòu)成循環(huán)。 3、用do-while語句構(gòu)成循環(huán)。 4、用for語句構(gòu)成循環(huán)。,不提倡,先判斷后執(zhí)行,先執(zhí)行后判斷,多功能,8.2 GOTO語句,一般形式: goto 語句標(biāo)號 作 用: 無條件轉(zhuǎn)向“語句標(biāo)號”處執(zhí)行。 “語句標(biāo)號”是一個標(biāo)識符,它表示程序指令 的地址。這個標(biāo)號不能是數(shù)字。 結(jié)構(gòu)化程序設(shè)計方法主張限制使用goto語句。 goto語句有兩種用途: 一是與if語句一起構(gòu)成循環(huán)結(jié)構(gòu); 二是從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外。Br

2、eak和continue,例8.2 用If語句和goto語句構(gòu)成循環(huán),main() int i,sum; sum=0; i=1; loop: if (i=100) /*標(biāo)號表示程序指令的地址,當(dāng)i100時,執(zhí)行加法 */ sum=sum+i; i+; goto loop; /*無條件轉(zhuǎn)向標(biāo)號loop處的指令 */ printf(1+2+3+.+100=%d,sum); ,求1+2+3+100的和。,8.3 WHILE語句,一般形式:while (表達式) 語句 作用:實現(xiàn)“當(dāng)型”循環(huán)。 當(dāng)“表達式”非0(真)時, 執(zhí)行while語句中的內(nèi)嵌“語句”。 “語句”是被循環(huán)執(zhí)行的程序,稱 為“循環(huán)體

3、”。 特點:先判“表達式(條件)”,后執(zhí)行語句。 循環(huán)體如果包含一個以上的語句,應(yīng)該以復(fù) 合語句形式出現(xiàn)。 在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句。,例8.3 用while循環(huán)實現(xiàn)1+2+3+100的和。,main() int i,sum=0; /*為循環(huán)賦初值 */ i = 1; while (i = 100) /*“當(dāng)型”循環(huán)*/ sum = sum + i; i+; /* 使循環(huán)趨于結(jié)束*/ printf(%d,sum); ,8.4 DO-WHILE語句,一般形式: do 語句 while (表達式) 特點:“直到型”循環(huán)結(jié)構(gòu)。 先執(zhí)行一次“語句”,再判別“表達式”。當(dāng)“表達式” 為非0時

4、,再執(zhí)行“語句”,直到“表達式”為0時,循 環(huán)結(jié)束。,main() int i,sum=0; i = 1; do sum = sum + i; i+; while (i=100); printf(%d,sum); ,例8.4用d0_while循環(huán)實現(xiàn)1+2+3+100的和。,8.5 FOR 語句,for語句常用于循環(huán)次數(shù)已知的循環(huán)控制; 也可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的 情況,它完全可以代替while語句。 一般形式: for(表達式1;表達式2;表達式3) 語 句,循環(huán)初始條件,判別循環(huán)條件,修改循環(huán)條件,執(zhí)行過程: (1)求表達式1; (2)求表達式2,若為“真”,執(zhí)行“語句

5、”; 若為假,轉(zhuǎn)第(5)步。 (3)求表達式3。 (4)轉(zhuǎn)第(2)步。 (5)執(zhí)行for語句以外的語句。,for (i=1;i=100;i+) sum = sum + i;,“表達式1”,循環(huán)初始條件(i=1)。,“表達式2”,循環(huán)條件(i=100)。,“表達式3”,修改循環(huán)條件(i+)。,這里,循環(huán)條件由變量i設(shè)定,變量i稱為“循環(huán) 變量”。 這是for語句的典型用法:已知循環(huán)次數(shù)。 (本例100次),main() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(%dn,sum); ,i = 1; while (i = 100) sum =

6、sum + i; i+; ,例8.5.1 用for循環(huán)實現(xiàn)1+2+3+100的和,1、for語句中的“表達式1”可以省略,此時應(yīng)在for語句之前給循環(huán)變量賦初值,否則不執(zhí)行for循環(huán)。,關(guān)于For語句的幾點說明:,2、 for語句中的“表達式2”如果省略,就認為表達式2始終為 真,將無限循環(huán)。例如:for(i=1; ;i+) sum=sum+i; 它相當(dāng)于:i=1; while(1) sum=sum+1; i+;,3、 for語句中的“表達式3”也可以省略,但此時程序員應(yīng)設(shè) 法保證循環(huán)能正常結(jié)束。如: for(i=1;i=100; ) 否則將無限循環(huán)。 sum=sum+i; i+; ,4、fo

7、r語句中的表達式1、3省略,只有表達式2,即只給出循環(huán)的條件,如無初值,for 將不執(zhí)行,后者將出錯。 for(;i=100;) while(i=100) sum=sum+i; sum=sum+i; i+; i+; ,5、 for語句中的三個表達式都省略,如:for( ; ; ) 相當(dāng)于:while(1) 無終止的執(zhí)行循環(huán)體。,6、表達式1可以是設(shè)置循環(huán)變量初值的賦值表達式,也可以 是其他與循環(huán)無關(guān)的表達式。 如: for(sum=0,i=1;i=100;i+,j- - ) sum=sum+i;,7、表達式一般是關(guān)系表達式(如i=100)或邏輯表達式 (如sb for ( ;(c=getcha

8、r()!=n; ) printf(%c,c); 運行: computer (輸入) computer (輸出),一、break語句 作用:跳出所在的多分支switch語句,跳出所在 的while、do-while、for循環(huán)語句(提前結(jié)束循 環(huán))。例8.6.1,8.6 break語句和continue語句,main() char grade; printf(qing shu ru cheng ji deng ji:n); scanf(%c, ,一、break語句 作用:跳出所在的多分支switch語句,跳出所在 的while、do-while、for循環(huán)語句(提前結(jié)束循 環(huán))。例8.6.2 #

9、define pi 3.14 main() int r; float s; for (r=1;r 100) break; printf(r=%d,s=%6.2fn,r,s); ,當(dāng)r=6時,s100,執(zhí)行 break語句,提前結(jié)束循環(huán), 不再計算r =710的s。,運行結(jié)果: 1 3.14 2 12.57 3 28.27 4 50.27 5 78.54 6 113.10 7 153.94 8 201.06 9 254.47 10 314.16,8.6 break語句和continue語句,二、continue語句 作用:提前結(jié)束本次循環(huán)體的執(zhí)行,接著進行下 一次循環(huán)條件的判別。 例8.6.3 把100200之間不能被3整除的數(shù)輸出。 main () int n; for (n=100; n=200; n+) if (n%3 = 0) continue; printf(%dt,n); ,當(dāng)n能被3整除時,執(zhí)行continue 語句,結(jié)束執(zhí)行本次循環(huán)的循環(huán) 體,即跳過printf語句。,8.6 break語句和continue語句,while (表達式1) while (表達式1) if (表達式2) if (表達式2) break; continue; break語句跳出循環(huán) continue語句結(jié)束本次 循環(huán)體的執(zhí)行,進入下 一次循環(huán),三、break

溫馨提示

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

最新文檔

評論

0/150

提交評論