




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八課 循環(huán)控制,8.1 概述,循環(huán):就是在滿(mǎn)足一定條件時(shí),重復(fù)執(zhí)行一段程序。 C語(yǔ)言中用如下語(yǔ)句實(shí)現(xiàn)循環(huán): 1、用goto語(yǔ)句和if語(yǔ)句構(gòu)成循環(huán)。 2、用while語(yǔ)句構(gòu)成循環(huán)。 3、用do-while語(yǔ)句構(gòu)成循環(huán)。 4、用for語(yǔ)句構(gòu)成循環(huán)。,不提倡,先判斷后執(zhí)行,先執(zhí)行后判斷,多功能,8.2 GOTO語(yǔ)句,一般形式: goto 語(yǔ)句標(biāo)號(hào) 作 用: 無(wú)條件轉(zhuǎn)向“語(yǔ)句標(biāo)號(hào)”處執(zhí)行。 “語(yǔ)句標(biāo)號(hào)”是一個(gè)標(biāo)識(shí)符,它表示程序指令 的地址。這個(gè)標(biāo)號(hào)不能是數(shù)字。 結(jié)構(gòu)化程序設(shè)計(jì)方法主張限制使用goto語(yǔ)句。 goto語(yǔ)句有兩種用途: 一是與if語(yǔ)句一起構(gòu)成循環(huán)結(jié)構(gòu); 二是從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外。Br
2、eak和continue,例8.2 用If語(yǔ)句和goto語(yǔ)句構(gòu)成循環(huán),main() int i,sum; sum=0; i=1; loop: if (i=100) /*標(biāo)號(hào)表示程序指令的地址,當(dāng)i100時(shí),執(zhí)行加法 */ sum=sum+i; i+; goto loop; /*無(wú)條件轉(zhuǎn)向標(biāo)號(hào)loop處的指令 */ printf(1+2+3+.+100=%d,sum); ,求1+2+3+100的和。,8.3 WHILE語(yǔ)句,一般形式:while (表達(dá)式) 語(yǔ)句 作用:實(shí)現(xiàn)“當(dāng)型”循環(huán)。 當(dāng)“表達(dá)式”非0(真)時(shí), 執(zhí)行while語(yǔ)句中的內(nèi)嵌“語(yǔ)句”。 “語(yǔ)句”是被循環(huán)執(zhí)行的程序,稱(chēng) 為“循環(huán)體
3、”。 特點(diǎn):先判“表達(dá)式(條件)”,后執(zhí)行語(yǔ)句。 循環(huán)體如果包含一個(gè)以上的語(yǔ)句,應(yīng)該以復(fù) 合語(yǔ)句形式出現(xiàn)。 在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句。,例8.3 用while循環(huán)實(shí)現(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語(yǔ)句,一般形式: do 語(yǔ)句 while (表達(dá)式) 特點(diǎn):“直到型”循環(huán)結(jié)構(gòu)。 先執(zhí)行一次“語(yǔ)句”,再判別“表達(dá)式”。當(dāng)“表達(dá)式” 為非0時(shí)
4、,再執(zhí)行“語(yǔ)句”,直到“表達(dá)式”為0時(shí),循 環(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)實(shí)現(xiàn)1+2+3+100的和。,8.5 FOR 語(yǔ)句,for語(yǔ)句常用于循環(huán)次數(shù)已知的循環(huán)控制; 也可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的 情況,它完全可以代替while語(yǔ)句。 一般形式: for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ) 句,循環(huán)初始條件,判別循環(huán)條件,修改循環(huán)條件,執(zhí)行過(guò)程: (1)求表達(dá)式1; (2)求表達(dá)式2,若為“真”,執(zhí)行“語(yǔ)句
5、”; 若為假,轉(zhuǎn)第(5)步。 (3)求表達(dá)式3。 (4)轉(zhuǎn)第(2)步。 (5)執(zhí)行for語(yǔ)句以外的語(yǔ)句。,for (i=1;i=100;i+) sum = sum + i;,“表達(dá)式1”,循環(huán)初始條件(i=1)。,“表達(dá)式2”,循環(huán)條件(i=100)。,“表達(dá)式3”,修改循環(huán)條件(i+)。,這里,循環(huán)條件由變量i設(shè)定,變量i稱(chēng)為“循環(huán) 變量”。 這是for語(yǔ)句的典型用法:已知循環(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)實(shí)現(xiàn)1+2+3+100的和,1、for語(yǔ)句中的“表達(dá)式1”可以省略,此時(shí)應(yīng)在for語(yǔ)句之前給循環(huán)變量賦初值,否則不執(zhí)行for循環(huán)。,關(guān)于For語(yǔ)句的幾點(diǎn)說(shuō)明:,2、 for語(yǔ)句中的“表達(dá)式2”如果省略,就認(rèn)為表達(dá)式2始終為 真,將無(wú)限循環(huán)。例如:for(i=1; ;i+) sum=sum+i; 它相當(dāng)于:i=1; while(1) sum=sum+1; i+;,3、 for語(yǔ)句中的“表達(dá)式3”也可以省略,但此時(shí)程序員應(yīng)設(shè) 法保證循環(huán)能正常結(jié)束。如: for(i=1;i=100; ) 否則將無(wú)限循環(huán)。 sum=sum+i; i+; ,4、fo
7、r語(yǔ)句中的表達(dá)式1、3省略,只有表達(dá)式2,即只給出循環(huán)的條件,如無(wú)初值,for 將不執(zhí)行,后者將出錯(cuò)。 for(;i=100;) while(i=100) sum=sum+i; sum=sum+i; i+; i+; ,5、 for語(yǔ)句中的三個(gè)表達(dá)式都省略,如:for( ; ; ) 相當(dāng)于:while(1) 無(wú)終止的執(zhí)行循環(huán)體。,6、表達(dá)式1可以是設(shè)置循環(huán)變量初值的賦值表達(dá)式,也可以 是其他與循環(huán)無(wú)關(guān)的表達(dá)式。 如: for(sum=0,i=1;i=100;i+,j- - ) sum=sum+i;,7、表達(dá)式一般是關(guān)系表達(dá)式(如i=100)或邏輯表達(dá)式 (如sb for ( ;(c=getcha
8、r()!=n; ) printf(%c,c); 運(yùn)行: computer (輸入) computer (輸出),一、break語(yǔ)句 作用:跳出所在的多分支switch語(yǔ)句,跳出所在 的while、do-while、for循環(huán)語(yǔ)句(提前結(jié)束循 環(huán))。例8.6.1,8.6 break語(yǔ)句和continue語(yǔ)句,main() char grade; printf(qing shu ru cheng ji deng ji:n); scanf(%c, ,一、break語(yǔ)句 作用:跳出所在的多分支switch語(yǔ)句,跳出所在 的while、do-while、for循環(huán)語(yǔ)句(提前結(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時(shí),s100,執(zhí)行 break語(yǔ)句,提前結(jié)束循環(huán), 不再計(jì)算r =710的s。,運(yùn)行結(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語(yǔ)句和continue語(yǔ)句,二、continue語(yǔ)句 作用:提前結(jié)束本次循環(huán)體的執(zhí)行,接著進(jìn)行下 一次循環(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整除時(shí),執(zhí)行continue 語(yǔ)句,結(jié)束執(zhí)行本次循環(huán)的循環(huán) 體,即跳過(guò)printf語(yǔ)句。,8.6 break語(yǔ)句和continue語(yǔ)句,while (表達(dá)式1) while (表達(dá)式1) if (表達(dá)式2) if (表達(dá)式2) break; continue; break語(yǔ)句跳出循環(huán) continue語(yǔ)句結(jié)束本次 循環(huán)體的執(zhí)行,進(jìn)入下 一次循環(huán),三、break
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專(zhuān)題3.1 導(dǎo)數(shù)的概念及其意義、導(dǎo)數(shù)的運(yùn)算(原卷版)-2024年高考數(shù)學(xué)一輪復(fù)習(xí)精講精練寶典(新高考專(zhuān)用)
- 2020-2021深圳華南中英文學(xué)校小學(xué)三年級(jí)數(shù)學(xué)下期末一模試卷及答案
- 《跨境電子商務(wù)基礎(chǔ)》高職全套教學(xué)課件
- 內(nèi)墻腳手架施工方案
- 歷史與社會(huì)人教版九年級(jí)第三單元第二課第一框《歐洲戰(zhàn)爭(zhēng)策源地的形成》教學(xué)設(shè)計(jì)
- 江西省景德鎮(zhèn)市2025屆中考考前最后一卷生物試卷含解析
- 安徽省宣城市培訓(xùn)校2025屆中考生物模擬預(yù)測(cè)題含解析
- 農(nóng)場(chǎng)員工合同范例
- 供電施工合同范例
- 企業(yè)產(chǎn)權(quán)房出租合同范例
- 上海煙草集團(tuán)有限責(zé)任公司招聘考試真題及答案2022
- 建設(shè)工程檢測(cè)人員(地基基礎(chǔ)檢測(cè))考試復(fù)習(xí)題庫(kù)400題(含各題型)
- 房地產(chǎn)開(kāi)發(fā)公司建立質(zhì)量保證體系情況說(shuō)明
- 谷氨酸的發(fā)酵工藝
- 商品庫(kù)存管理系統(tǒng)-數(shù)據(jù)庫(kù)課設(shè)
- 航拍中國(guó)第一季 文字稿
- 肺癌放療靶區(qū)的定義和勾畫(huà)
- 三年級(jí)美術(shù)下冊(cè) 曲曲直直 教學(xué)課件
- 團(tuán)員民主評(píng)議測(cè)評(píng)表
- 生產(chǎn)運(yùn)作管理備貨型與訂貨型生產(chǎn)
- 副井井筒永久鎖口安全技術(shù)措施
評(píng)論
0/150
提交評(píng)論