




已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章 循環(huán)控制,重點(diǎn):1)三種循環(huán)結(jié)構(gòu),當(dāng)型循環(huán)與while語(yǔ)句,直到型循環(huán)與do while語(yǔ)句,次數(shù)循環(huán)與for語(yǔ)句,2)break語(yǔ)句和continue語(yǔ)句,一、概述,循環(huán)結(jié)構(gòu):在一定的條件下,重復(fù)執(zhí)行一組語(yǔ)句。,被重復(fù)執(zhí)行的語(yǔ)句稱(chēng)為“循環(huán)體”,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句有3種:,1.while語(yǔ)句,2.dowhile語(yǔ)句,3.for語(yǔ)句,當(dāng) (i小于20 ),練習(xí):輸出20以?xún)?nèi)的所有整數(shù),i=1,i小于20,輸出i,真,假,程序結(jié)束,i=i+1,重復(fù)操作 (循環(huán)),輸出i,i=i+1,循環(huán)體,while,i20,printf(“%d”,i);,i=i+1;,#include void main() int i; ,i=1;, ,while(i=20),printf(“%d”,i);,i=i+1;,1、循環(huán)結(jié)構(gòu)之 while語(yǔ)句,形式: while (條件) 循環(huán)體 ,功能:在程序遇到while時(shí),首先檢查條件是否成立,若成立則執(zhí)行循環(huán)體語(yǔ)句,然后再去檢查條件,若條件仍然成立則繼續(xù)執(zhí)行循環(huán)體,依次反復(fù),直到某個(gè)時(shí)刻條件不再成立,則退出循環(huán)執(zhí)行后續(xù)語(yǔ)句。,用來(lái)實(shí)現(xiàn)“當(dāng)型”循環(huán),流程圖:,條件p,循環(huán)體,真,假,后續(xù)語(yǔ)句,1、循環(huán)結(jié)構(gòu)之 while語(yǔ)句,形式: while (條件) 循環(huán)體 ,練習(xí):輸出100以?xún)?nèi)所有整數(shù)。,#include void main() int i=1; while(i100) printf(“%d”,i); i=i+1; ,if(i%3=0),能被3整除的數(shù)。,注: (1)循環(huán)體如果包含一個(gè)以上的語(yǔ)句,應(yīng)該用花括號(hào)括起來(lái),組成復(fù)合語(yǔ)句。,(2)循環(huán)體中必須有使循環(huán)趨向結(jié)束的語(yǔ)句,否則會(huì)出現(xiàn)死循環(huán)。,i=i+1;,例題:輸出20以?xún)?nèi)的所有整數(shù),i=1,i小于20,輸出i,真,假,程序結(jié)束,i=i+1,二者的區(qū)別?,先判斷 再執(zhí)行操作,先執(zhí)行操作 再進(jìn)行條件判斷,實(shí)現(xiàn)形式: while(條件) 循環(huán)體 ,實(shí)現(xiàn)形式: do 循環(huán)體 while(條件);,2、循環(huán)結(jié)構(gòu)之 dowhile語(yǔ)句,注意不要漏掉分號(hào),#include void main() int i=1; while(i20) printf(“%d”,i); i=i+1; ,例題:輸出20以?xún)?nèi)的所有整數(shù),改成do while結(jié)構(gòu),do printf(“%d”,i); i=i+1; while(i20);,do 語(yǔ)句與dowhile的區(qū)別,while () 循環(huán)體,do 循環(huán)體 while();,循環(huán)體至少執(zhí)行一次,有可能循環(huán)體一次也執(zhí)行不到。,#include void main() int i=1; while(i20) printf(“%d”,i); i=i+1; ,#include void main() int i=1; do printf(“%d”,i); i=i+1; while(i20); ,20;,20;,作用:使變量的值增1或減1,補(bǔ)充: 自增、自減運(yùn)算符 + -,1)該運(yùn)算符為單目運(yùn)算符,其運(yùn)算對(duì)象只能是變量,不能為常量或者表達(dá)式。,例如:i+ x- - 都是正確的 5+ (x+y)+ 都是錯(cuò)誤的,2)該運(yùn)算符作前綴、后綴都可以 例如 i+ +i i- - - -i 都是正確的,3)對(duì)變量而言 i+ 或者+i都相當(dāng)于i=i+1 i- -或者- -i 都相當(dāng)于i=i-1,程序的輸出結(jié)果為,3)但如果作為表達(dá)式,前綴和后綴則不同: 前綴:先運(yùn)算再取值 后綴:先取值再運(yùn)算,例如: void main() int i=3; printf(“%dn”,i+ ); ,+i,3,4,下列程序的輸出結(jié)果為,void main() int i=5,j; j=i+; printf(“i=%d,j=%dn”,i,j); ,程序結(jié)果: i=6,j=5,j=+i;,i=6,j=6,4)多用于循環(huán)語(yǔ)句中,使變量自增或者自減,也用于指針變量,使指針指向下一個(gè)或者前一個(gè)地址。 例如前例中:,#include void main() int i=1; while(i20) printf(“%d”,i); i=i+1; ,#include void main() int i=1; do printf(“%d”,i); i=i+1; while(i20) ; ,i+;,i+;,例題:求 s=1+2+3+4+100,s=0,s+1,s,s+2,s,s+3,s,s+99,s,s+100,s,s+i,i+,1,1+2,1+2+3,1+2+3+99,1+2+3+99+100,S=0,i=1,i=100,s=s+i,真,假,輸出s,i=i+1,main() int i,s; i=1; s=0; ,while (i=100),s=s+i;,i+;,printf(“s=%dn”,s);, ,練習(xí):求p=5!,main() int i ,p; i=1; p=1; ,while (i=5),p=p*i;,i+;,printf(“p=%dn”,p);, ,p=1,5,p=p*i,p,作業(yè):,1:編寫(xiě)一個(gè)猜數(shù)的小游戲。 游戲規(guī)則:由計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)100以?xún)?nèi)的整數(shù),用戶(hù)猜該數(shù)是多少,如果沒(méi)有猜對(duì),則系統(tǒng)提示“太大”或者“太小”,然后繼續(xù)猜。直到猜對(duì)為止。(guess.c),2:編程進(jìn)行100以?xún)?nèi)的四則運(yùn)算練習(xí)。并統(tǒng)計(jì)做題的總數(shù)、答對(duì)題的數(shù)目和答錯(cuò)題的數(shù)目。(opration.c),3:輸入一個(gè)任意位數(shù)的正整數(shù),然后由低位到高位輸出每一位上的數(shù)字。如輸入456789,則輸出9,8,7,6,5,4,引申練習(xí):可以玩多次的猜數(shù)游戲,知道不想玩為止。,引申練習(xí):輸入一個(gè)任意位數(shù)的正整數(shù),然后由高位到低位輸出每一位上的數(shù)字。 如輸入446789,則輸出4,5,6,7,8,9,for( ),#include void main() int i; i=1 ; while(i20) printf(“%d”,i); i+; ,i=1,i20,i+,基本形式: for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體,printf(“%d”,i);,3、循環(huán)結(jié)構(gòu)之for語(yǔ)句,(1)形式:,多用于已經(jīng)知道循環(huán)次數(shù)確定的情況下,也可以用于已知循環(huán)條件的情況。使用最為靈活。,for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體,(2)執(zhí)行過(guò)程:,求解表達(dá)式1,判斷表達(dá)式2,真,循環(huán)體,表達(dá)式3,假,循環(huán)體后的語(yǔ)句,for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體,注:一般情況下各部分表達(dá)式的作用:,表達(dá)式1:循環(huán)變量賦初值,表達(dá)式2:循環(huán)成立的條件,表達(dá)式3:循環(huán)變量的變化,所以,for語(yǔ)句最多的采用形式為:,for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量變化) 循環(huán)體,例如:for(i=0;i8;i+) ,例:,/循環(huán)變量賦初值,/循環(huán)條件,/循環(huán)變量的變化,/循環(huán)語(yǔ)句,用for語(yǔ)句實(shí)現(xiàn):,for( ; ; ),i=1,i=100,i+,s=s+i;,for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量變化) 循環(huán)體,注:1)各個(gè)部分均可省略,但分號(hào)不能省。,省略表達(dá)式1:應(yīng)在for語(yǔ)句之前給循環(huán)變量賦初值。,for(i=1;i=100;i+) s=s+i;,i=1;,省略表達(dá)式2:不進(jìn)行循環(huán)條件的判斷,則循環(huán)將會(huì)無(wú)終止的執(zhí)行下去,即死循環(huán)。,for(i=1; i=100;i+) s=s+i;,省略表達(dá)式3:可以在循環(huán)體內(nèi)實(shí)現(xiàn)循環(huán)變量的變化,for(i=1; i=100;i+) s=s+i;,i+;, ,注:2)各個(gè)部分可以為各種形式的與循環(huán)無(wú)關(guān)的表達(dá)式,各表達(dá)式之間用逗號(hào)隔開(kāi)。,main() int i,s; s=0; for( i=0;i=100; i+) s+=i; printf(“sum is %dn”,s); ,s=0,s+=i ,;,main() int i; for(i=1;i=4;i+) printf( ); ,練習(xí):輸出4的乘法表,1*4=4 2*4=8 3*4=12 4*4=16,“ ”,*4=,%d,%d,i,i*4,練習(xí):輸出九九乘法表(lt5_5.c),1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*9=9 2*9=18 3*9=27 9*9=81,main() int i; for(i=1;i=4;i+) printf(“%d* 4 =%d ”,i, i*4 ); ,j,%d,j, ,for(j=1;j=9;j+),j;,printf(“n”);,printf(“n”);,i*j,4、循環(huán)結(jié)構(gòu)的嵌套,以上3種形式的循環(huán)結(jié)構(gòu)可以相互嵌套。,一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱(chēng)為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。,練習(xí):編寫(xiě)一個(gè)猜數(shù)的小游戲。 游戲規(guī)則:由計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)100以?xún)?nèi)的整數(shù),用戶(hù)猜該數(shù)是多少,如果沒(méi)有猜對(duì),則系統(tǒng)提示“太大”或者“太小”,然后繼續(xù)猜。直到猜對(duì)為止。,提示:太大了,否,太小了,否,提示:太小了,是,提示:猜對(duì)了。 程序結(jié)束,系統(tǒng)產(chǎn)生數(shù)據(jù),輸入數(shù)據(jù),太大了,是,x,y,printf(“太大了!n“);,else,printf(“太小了!n“);,if(yx),if(yx),#include #include #include void main() int x,y; srand(time(0); /以系統(tǒng)時(shí)鐘作為隨機(jī)種子 x=rand()%100; /產(chǎn)生隨機(jī)數(shù) , ,printf(“請(qǐng)輸入你猜的數(shù)據(jù):“);,scanf(“%d”,printf(“太大了!n“);,else,printf(“太小了!n“);,if(yx),while(y!=x);,do,if(yx),printf(“恭喜你,猜對(duì)了!該數(shù)是:%dn“,x);,printf(“請(qǐng)輸入你猜的數(shù)據(jù):“);,scanf(“%d”,printf(“太大了!n“);,else,printf(“太小了!n“;,if(yx),while(y!=x);, ,printf(“請(qǐng)輸入你猜的數(shù)據(jù):“);,scanf(“%d”,改成while結(jié)構(gòu),提示:太大了,太大了,是,提示:太小了,是,提示:猜對(duì)了。 程序結(jié)束,系統(tǒng)產(chǎn)生數(shù)據(jù),輸入數(shù)據(jù),猜對(duì)了嗎,否,否,例題:編程判斷一個(gè)數(shù)是否為素?cái)?shù)(質(zhì)數(shù))。素?cái)?shù)是大于1的整數(shù),除了1和本身之外不能被其他的任何數(shù)整除。 例如:3,7,11,13,19,23,31等,void main() int x,i; scanf(“%d”, ,輸入x,i=2,x與i能否整除?,真,i+,ix,假,假,退出循環(huán),真,for(i=2;ix;i+),if(i=x) printf(“non”); else printf(“yesn”);,if(x%i=0),break;,5、break語(yǔ)句,作用:跳出其所在的循環(huán)體。提前結(jié)束該層循環(huán)。,練習(xí):輸出100以?xún)?nèi)的所有素?cái)?shù)。,練習(xí):將下面程序補(bǔ)充完整,使程序計(jì)算100以?xún)?nèi)所有可被7整除的自然數(shù)之和。 #include void main() int x=1; int sum=0; while(1) if(x100) _; if( )sum=sum+x; x+; printf(“%dn”,sum); ,break,x%7=0,程序分析題 #include void main( ) int i,j; for(i=l;i=4;i+=1) for(j=2;j=4;j+=j) if(i+j5) printf( + ); else printf( * ); ,6、contine語(yǔ)句,作用:結(jié)束本次循環(huán)。即跳過(guò)本次循環(huán)體中尚未執(zhí)行的語(yǔ)句。,注:并沒(méi)有中止整個(gè)循環(huán)。,例:分析以下程序的運(yùn)行結(jié)果,main() int i; for(i=1;i=5;i+) if(i%2) printf(“*”); else continue; printf(“#”); printf($n”); ,*#*#*#$,練習(xí):以下程序的輸出結(jié)果為:,main() int a=1,b; for(b=1;b=8) break; if(a%2=1) a+=5);continue; a-=3; printf(“%dn“,b); ,4,課程回顧,一、+、-運(yùn)算符 注意:作為前綴和后綴的區(qū)別。,二、3中循環(huán)語(yǔ)句:,while,dowhile,for,寫(xiě)出每一種語(yǔ)句的格式(通式):,while(條件) 循環(huán)體 ,do 循環(huán)體 while(條件);,for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體 ,for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量變化),三、影響循環(huán)執(zhí)行的2種
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老舊市政排水管網(wǎng)修復(fù)工程可行性研究報(bào)告(范文)
- 2025年四川省成都市中考物理真題含答案
- 失業(yè)保險(xiǎn)對(duì)經(jīng)濟(jì)轉(zhuǎn)型期就業(yè)穩(wěn)定作用分析
- 獄警生活衛(wèi)生管理制度
- 環(huán)衛(wèi)公司設(shè)備管理制度
- 環(huán)衛(wèi)崗位作業(yè)管理制度
- 環(huán)衛(wèi)路面作業(yè)管理制度
- 環(huán)境管理物資管理制度
- 現(xiàn)場(chǎng)緊急避險(xiǎn)管理制度
- 珠寶公司業(yè)績(jī)管理制度
- 生態(tài)養(yǎng)殖羊圈施工合同
- 【團(tuán)體標(biāo)準(zhǔn)】TDZJN 77-2022 鋰離子電池產(chǎn)品碳足跡評(píng)價(jià)導(dǎo)則
- 2023日語(yǔ)專(zhuān)四真題專(zhuān)業(yè)四級(jí)真題
- 2024AI Agent行業(yè)研究報(bào)告
- 高中物理教學(xué)中物理實(shí)驗(yàn)的改進(jìn)與創(chuàng)新
- 華為質(zhì)量回溯(根因分析與糾正預(yù)防措施)模板
- 綜合英語(yǔ)4智慧樹(shù)知到答案2024年江西師范大學(xué)
- 紡織材料學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年武漢紡織大學(xué)
- 江西省新余市2023-2024學(xué)年八年級(jí)下學(xué)期期末質(zhì)量監(jiān)測(cè)物理試題
- 江蘇省蘇州市吳江區(qū)2023-2024學(xué)年六年級(jí)下學(xué)期期末數(shù)學(xué)試題
- (正式版)JTT 1490-2024 港口安全設(shè)施分類(lèi)與編碼
評(píng)論
0/150
提交評(píng)論