




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第7講第4章 循環(huán)程序設(shè)計(jì)4.1 循環(huán)概述4.2 while語句4.3 for語句4.4 dowhile語句4.5 循環(huán)的嵌套4.6 break與continue語句循環(huán)的嵌套三種循環(huán)可互相嵌套,層數(shù)不限外層循環(huán)可包含兩個(gè)以上內(nèi)循環(huán),但不能相互交叉嵌套循環(huán)的執(zhí)行流程(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)嵌套循環(huán)的跳轉(zhuǎn)禁止:從外層跳入內(nèi)層跳入同層的另一循環(huán)向上跳轉(zhuǎn) 4.5 輔助控制語句br
2、eak語句功能:在循環(huán)語句和switch語句中,終止并跳出循環(huán)體或開關(guān)體說明:break只能終止并跳出最近一層的結(jié)構(gòu)break不能用于循環(huán)語句和switch語句之外的任何其它語句之中exprbreak;假(0)真(非0)whiledobreak;.expr假(0)真(非0)whileexpr2break;.假(0)真(非0)forexpr1expr3switchexpr語句組1break;語句組2break;語句組nbreak;語句組break;.const 1const 2const ndefaultcase 例 break舉例:輸出圓面積,面積大于100時(shí)停止#define PI 3.14
3、159fvoid main() int r; float area; for(r=1;r100)break; printf(r=%d,area=%.2fn,r,area); 例 break舉例:小寫字母轉(zhuǎn)換成大寫字母,直至輸入非字母字符#include void main() int i,j; char c; while(1) c=getchar(); if(c=a & c=z) putchar(c-a+A); else break; continue語句功能:結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷僅用于循環(huán)語句中exprcontinue;假(0)真(非0)w
4、hile真(非0)docontinue;.expr假(0)whileexpr2continue;.假(0)真(非0)forexpr1expr3例 求輸入的十個(gè)整數(shù)中正數(shù)的個(gè)數(shù)及其平均值#include void main() int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d,&a);if(a=0) continue;num+;sum+=a; printf(%d plus integers sum :%6.0fn,num,sum); printf(Mean value:%6.2fn,sum/num);循環(huán)小結(jié)例:某個(gè)班有10個(gè)學(xué)生。已知他們
5、參加某次考試的成績(0到100之間的整數(shù)),求全班學(xué)生在這次考試中的總成績。#include main() int counter,score,total=0; printf(Enter score:); for(counter=1;counter=10;counter+) scanf(%d,&score); total+=score; printf(Class average is %dn,total/10);例:某個(gè)班有若干個(gè)學(xué)生。已知他們參加某次考試的成績(0到100之間的整數(shù)),求全班學(xué)生在這次考試中的總成績。#include void main() int counter=1, sc
6、ore, total=0; printf(Enter score,-1 to end:); scanf(%d,&score); while(score!=-1) total+=score; counter+; printf(“Enter score,-1 to end:”); scanf(“%d”,&score); printf(Class average is %d,total/(counter-1); 前面討論了兩種循環(huán): 1)計(jì)數(shù)器控制的循環(huán) 2)標(biāo)志控制的循環(huán) 因?yàn)槲覀兪孪饶軌驕?zhǔn)確地知道計(jì)數(shù)器的循環(huán)會(huì)執(zhí)行多少次,所以把計(jì)數(shù)器控制的循環(huán)有時(shí)稱為“定數(shù)循環(huán)”;因?yàn)槲覀兪孪炔恢罉?biāo)志控制的循
7、環(huán)會(huì)執(zhí)行多少次,所以把標(biāo)記控制的循環(huán)有時(shí)稱為“不定數(shù)循環(huán)”。 在計(jì)數(shù)器控制的循環(huán)中,控制變量用來計(jì)算循環(huán)的次數(shù)。控制變量的值在每次執(zhí)行完一組循環(huán)指令后遞增(或遞減)。當(dāng)控制變量的值表明達(dá)到了預(yù)定的循環(huán)次數(shù)時(shí),循環(huán)終止并繼續(xù)執(zhí)行循環(huán)結(jié)構(gòu)后的語句。 在如下情況下可用標(biāo)記值控制循環(huán)過程: 1)事先不知道準(zhǔn)確的循環(huán)次數(shù) 2)循環(huán)體中包含每次循環(huán)都要獲取數(shù)據(jù)的語句 標(biāo)記值表示獲取數(shù)據(jù)的結(jié)束。標(biāo)記值是在所有合法數(shù)據(jù)項(xiàng)都提供給程序后鍵入的值。標(biāo)記值必須不同于正常的數(shù)據(jù)項(xiàng)。例:協(xié)助破案。假設(shè)已經(jīng)查清,有A、B、C、D、E五個(gè)嫌疑人可能參與制造了一起搶劫銀行案,但是不知道其中哪幾個(gè)人是真正的案犯。不過,有確鑿證
8、據(jù)表明: 如果A參與了作案,則B和C一定會(huì)參與。 B和C兩人中只有一人參與了作案。 C和D要么都參與了作案,要么都沒有參與。 D和E兩人中至少有一人參與作案。 如果E作案,則A和D一定參與作案。main() int a,b,c,d,e; int count=0; for(a=0;a2;a+) for(b=0;b2;b+) for(c=0;c2;c+) for(d=0;d2;d+) for(e=0;e=1); count+=(e=0|(e=1&a=1&d=1); if(count=5) goto finish; finish: printf(Suspect a is %s.n,(a=1)?a c
9、riminal:not a criminal); printf(Suspect b is %s.n,(b=1)?a criminal:not a criminal); printf(Suspect c is %s.n,(c=1)?a criminal:not a criminal); printf(Suspect d is %s.n,(d=1)?a criminal:not a criminal); printf(Suspect e is %s.n,(e=1)?a criminal:not a criminal);循環(huán)語句的效率建議一:在多重嵌套循環(huán)中,如果有可能,應(yīng)當(dāng)將最長的循環(huán)放在最內(nèi)層,最短的循環(huán)放在最外層,這樣可以減少CPU跨切循環(huán)層的次數(shù),從而優(yōu)化程序的性能。for(row=0;row100;row+) for(col=0;col5;col+) sum+=arowcol; for(col=0;col5;col+) for(row=0;col100;col+) sum+=arowcol; 循環(huán)語句的效率建議二:如果循環(huán)體內(nèi)存在邏輯判斷,并且循環(huán)次數(shù)很
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房做樣板間合同協(xié)議書
- 權(quán)屬責(zé)任移交清協(xié)議書
- 脫離單位協(xié)議書
- 聘請(qǐng)教師協(xié)議書
- 抖音號(hào)轉(zhuǎn)讓合同協(xié)議書
- 小飾品店面轉(zhuǎn)讓協(xié)議書
- 現(xiàn)金繼承協(xié)議書
- 糯家加盟協(xié)議書
- 磁磚合作協(xié)議書
- 無牌摩托車過戶協(xié)議書
- 二年級(jí)《道德與法治》下冊(cè)知識(shí)點(diǎn)
- 2024年四川省成都市中考?xì)v史試卷真題(含答案解析)
- 2024屆四川省廣元市旺蒼縣小升初考試數(shù)學(xué)試卷含解析
- 2024CSCO結(jié)直腸癌診療指南解讀
- MOOC 信號(hào)與系統(tǒng)-西安電子科技大學(xué) 中國大學(xué)慕課答案
- 公需科目2023年度數(shù)字經(jīng)濟(jì)與驅(qū)動(dòng)發(fā)展考試題庫及答案
- 中學(xué)生英才計(jì)劃面試常見問題
- 壓力容器安全風(fēng)險(xiǎn)管控清單(日管控、周排查、月調(diào)度)
- 中小學(xué)心理健康教育指導(dǎo)綱要
- 嬰幼兒尿布性皮炎護(hù)理
- 國網(wǎng)兼職培訓(xùn)師培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論