下載本文檔
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年江西航空職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫附答案
- 2026年江西泰豪動漫職業(yè)學(xué)院單招職業(yè)技能測試模擬測試卷附答案
- 2026年嘉興職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試模擬測試卷及答案1套
- 2026年四川托普信息技術(shù)職業(yè)學(xué)院單招綜合素質(zhì)考試模擬測試卷附答案
- 2026年心理健康測考試題庫及答案一套
- 2026年武漢海事職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試模擬測試卷及答案1套
- 2026年山東科技職業(yè)學(xué)院單招職業(yè)技能考試題庫及答案1套
- 2026東盟海產(chǎn)品交易所有限公司福建福州招聘6人筆試備考題庫及答案解析
- 2025廣東中共深圳市委統(tǒng)戰(zhàn)部面向市內(nèi)選調(diào)公務(wù)員3人備考題庫附答案
- 2026福建龍巖連城縣委黨校公開選拔工作人員2人筆試模擬試題及答案解析
- 電力線通信技術(shù)
- 教師三筆字培訓(xùn)課件
- 中國醫(yī)藥行業(yè)中間體出口全景分析:破解政策難題深挖全球紅利
- 數(shù)學(xué)課如何提高課堂教學(xué)容量
- 監(jiān)理規(guī)劃畢業(yè)設(shè)計(論文)
- 京港澳高速公路段改擴建工程施工保通方案(總方案)
- 醫(yī)用設(shè)備EMC培訓(xùn)資料課件
- RoHS培訓(xùn)資料課件
- 2020年廣東學(xué)位英語考試真題及答案
- 鍋爐防磨防爆工作專項檢查方案
- 《儀表本安防爆技術(shù)》課件
評論
0/150
提交評論