循環(huán)控制-課件_第1頁
循環(huán)控制-課件_第2頁
循環(huán)控制-課件_第3頁
循環(huán)控制-課件_第4頁
循環(huán)控制-課件_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第六章循環(huán)控制1ppt課件本章主要內(nèi)容6.1概述6.2goto語句以及用goto語句構成循環(huán)6.3用while語句實現(xiàn)循環(huán)6.4用do-while語句實現(xiàn)循環(huán)6.5用for語句實現(xiàn)循環(huán)6.6循環(huán)的嵌套6.7幾種循環(huán)的比較6.8break語句和continue語句6.9程序舉例重點掌握:循環(huán)的基本概念、不同形式的循環(huán)控制、多重循環(huán)問題2ppt課件§6.1概述什么是循環(huán)?循環(huán)就是在滿足一定條件時,重復執(zhí)行一段程序。為什么要使用循環(huán)?問題:y=1+2+3+……+100;太長!y=0;n=1;while(n<=100){y+=n;n++;}3ppt課件實現(xiàn)循環(huán)的語句(四種)用goto語句和if語句實現(xiàn)循環(huán)用while語句實現(xiàn)循環(huán)用do-while語句實現(xiàn)循環(huán)用for語句實現(xiàn)循環(huán)——不提倡——先判斷后執(zhí)行——先執(zhí)行后判斷——多功能4ppt課件§6.2goto語句以及用goto語句構成循環(huán)goto語句的一般形式:

goto語句標號;例如:label_1:i++;gotolable_1;goto語句的功能:無條件地轉(zhuǎn)到標號所指語句goto語句的用途:與if語句一起構成循環(huán)結構;從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外。語句標號用標識符表示;用于定義程序中的某個位置。濫用goto語句將使程序流程無規(guī)律、可讀性差,因此應限制使用goto語句。5ppt課件#include<stdio.h>voidmain(){

intn,sum;//n存放加數(shù),sum存放和

sum=0;n=1; if(n<=100) { sum=sum+n;//sum+=n;n++;

gotoloop; } printf("%d\n",sum);}例6.1用if語句和goto語句構成循環(huán),求說明:這里用的是“當型”循環(huán)結構,當滿足“n<=100”時執(zhí)行花括弧內(nèi)的循環(huán)體。

運行結果:5050Pressanykeytocontinueloop:

6ppt課件§6.3用while語句實現(xiàn)循環(huán)while語句用來實現(xiàn)“當型”循環(huán)結構。一般形式:

while(表達式)語句執(zhí)行過程:當表達式的值為非0(真)時,執(zhí)行while語句中的內(nèi)嵌語句(循環(huán)體),然后再次判斷表達式的值,如此重復;當表達式的值為0(假)時結束循環(huán)。特點:先判斷表達式,后執(zhí)行語句。7ppt課件例如:k=1;while(k<10){ printf("%d",k); k=k+2;}循環(huán)控制表達式循環(huán)控制變量k循環(huán)體循環(huán)體說明:(1)循環(huán)體若包含一個以上的語句,應該以復合語句形式出現(xiàn)。(2)在循環(huán)之前,必須給循環(huán)控制變量賦初值。(3)應有使循環(huán)趨向于結束的語句。如上例中k=k+2;(4)循環(huán)體可以為空。例如:while((c=getchar())!='A');8ppt課件例6.2用while語句實現(xiàn)循環(huán),求#include<stdio.h>voidmain(){

intn,sum;sum=0;n=1;

while(n<=100)

{

sum=sum+n;n++;}

printf("%d\n",sum);}9ppt課件§6.4用do-while語句實現(xiàn)循環(huán)一般形式:

do

循環(huán)體語句

while(表達式);執(zhí)行過程:先執(zhí)行一次指定的循環(huán)體語句,然后判別表達式,當表達式的值為非0(真)時,返回重新執(zhí)行循環(huán)體語句,如此反復,直到表達式的值等于0為止,此時循環(huán)結束。特點:先執(zhí)行循環(huán)體,后判斷循環(huán)條件是否成立逗號不能少!10ppt課件例6.3用do-while語句實現(xiàn)循環(huán),求#include<stdio.h>voidmain(){

intn,sum;sum=0;n=1;

do

{ sum=sum+n;n++;

}while(n<=100);/*必須有分號*/printf("%d\n",sum);}11ppt課件while語句和do-while語句的比較while語句do-while語句先判后執(zhí)行先執(zhí)行后判循環(huán)體可能一次都不執(zhí)行循環(huán)體至少執(zhí)行一次12ppt課件§6.5用for語句實現(xiàn)循環(huán)一般形式:

for(表達式1;表達式2;表達式3)語句執(zhí)行過程:

(1)先求解表達式1。

(2)

求解表達式2,若其值為非0(真),則執(zhí)行for語句中指定的內(nèi)嵌語句(循環(huán)體),然后求解表達式3,轉(zhuǎn)回第(2)步。若值為0(假),則結束循環(huán),執(zhí)行for語句下面的語句。13ppt課件for語句執(zhí)行過程的流程圖:循環(huán)初始化循環(huán)控制條件循環(huán)體for語句等價于下列while語句:表達式1;While(表達式2){語句;表達式3;}14ppt課件for語句最簡單的形式:

for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量修改)

循環(huán)體語句;

例如:n=1;while(n<=100){sum=sum+n;n++;}等價于

for(n=1;n<=100;n++)sum=sum+n;循環(huán)變量賦初值循環(huán)條件修改循環(huán)變量15ppt課件說明:1.表達式1可以省略,此時應在for語句之前給循環(huán)變量賦初值。注意表達式1后的分號不能省略。

例如:n=1;

for(

;n<=100;n++)sum=sum+n;2.表達式2省略時,不判斷循環(huán)條件,將成為“死循環(huán)”??稍谘h(huán)體中引入break語句退出循環(huán)。

例如:for(n=1;;n++)sum=sum+n;if(n>100)

break;//跳出本層循環(huán)sum=sum+n;{}16ppt課件3.表達式3省略時,應在循環(huán)體內(nèi)有使循環(huán)變量修改的語句,否則循環(huán)不能正常結束。

例如:for(n=1;n<=100;){sum=sum+n;

n++;

}4.可同時省略表達式1和表達式3,只有表達式2,此時相當于while語句。

例如:n=1;

for(;n<=100;){sum=sum+n;

n++;}

等價于:n=1;

while(n<=100){sum=sum+n;n++;}17ppt課件5.3個表達式都可省略,此時無終止地執(zhí)行循環(huán)體。例如:for(;;)語句6.表達式1和表達式3既可是與循環(huán)變量有關的表達式,也可是與循環(huán)變量無關的其他表達式;既可是簡單表達式,也可是逗號表達式。

例:for(i=0,j=100;i<=j;i++,j--)k=i+j;上述for語句循環(huán)體執(zhí)行了幾次?循環(huán)體執(zhí)行51次。上述for語句執(zhí)行后k為多少?K為10018ppt課件7.表達式2一般是關系或邏輯表達式,但也可以是其他表達式,只要其值為非0,就執(zhí)行循環(huán)體。例:for(;

(

c=getchar()

)

!=

'\n';

)printf("%c",c);功能:從鍵盤緩沖區(qū)中每讀入一個非換行符的字符后輸出該字符,直到輸入“換行符”為止。運行結果:Computer↙

Computer注意:從鍵盤向計算機輸入時,是在按Enter鍵后才將一批數(shù)據(jù)一起送到內(nèi)存緩沖區(qū)中去的。運行結果:CCoommppuutteerr↙

√OR19ppt課件§6.6循環(huán)的嵌套循環(huán)的嵌套:一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結構多層(重)循環(huán):內(nèi)嵌的循環(huán)中又嵌套循環(huán)。三種循環(huán)(while、do-while和for)可以互相嵌套。(1)for(;;){…

for(;;){…}

}

(2)while(){…

do{…}

while(

);

}(3)for(;;){…

while(){…}

…}

20ppt課件說明:嵌套的循環(huán)控制變量不能相同內(nèi)循環(huán)變化快,外循環(huán)變化慢正確確定循環(huán)體21ppt課件for(i=1;i<=2;i++)

{ for(j=1;j<=i;j++) printf("%d",i*j); printf("\n");

}//內(nèi)循環(huán)的循環(huán)體例:i=1,i<=2成立j=1,j<=i成立輸出1︺j=2,j<=i不成立輸出換行結束內(nèi)嵌fori=2,i<=2成立j=1,j<=i成立輸出2︺j=2,j<=i成立輸出換行結束內(nèi)嵌for輸出4︺j=3,j<=i不成立︺︺i=3,i<=2不成立結束外循環(huán)for運行結果:1︺2︺4︺_22ppt課件§6.7幾種循環(huán)的比較(1)四種循環(huán)都可以用來處理同一問題,一般不提倡用goto構成循環(huán)。(2)while(表達式)語句do循環(huán)體語句while(表達式);for(表達式1;表達式2;表達式3)

語句表達式表達式表達式2循環(huán)控制條件修改循環(huán)變量(也可在循環(huán)體語句內(nèi))…………循環(huán)變量初始化表達式1(也可在for前)23ppt課件(3)while循環(huán)、do-while循環(huán)和for循環(huán),可以用break語句跳出本層循環(huán),用continue語句結束本次循環(huán)。而對用goto語句和if語句構成的循環(huán),不能用break語句和continue語句進行控制。

24ppt課件§6.8break語句和continue語句一、break語句一般形式:

break;功能:結束本層switch語句、結束本層循環(huán)注意:break語句不能用于三種循環(huán)語句和switch語句之外的其他語句中。

25ppt課件例:

floatr,area,pi=3.14159;for(r=1;r<=10;r++){area=pi*r*r;/*計算圓面積*/if(area>100)break;

printf("r=%f,area=%f\n",

r,

area);}程序的功能:計算并輸出r=1到r=10時的圓面積,直到面積area大于100為止。26ppt課件二、continue語句一般形式:

continue;功能:結束本次循環(huán)。對于while、do-while語句,跳過循環(huán)體中continue后面剩余的語句,進行循環(huán)條件的判定。對于for語句,跳過循環(huán)體中continue后面剩余的語句,求解表達式3,然后進行循環(huán)條件的判定。三、continue語句和break語句的區(qū)別continue語句只結束本次循環(huán),而break語句是終止本層整個循環(huán)的執(zhí)行。27ppt課件(1)while(表達式1){…if(表達式2)break;…}(2)while(表達式1){…if(表達式2)continue;…}28ppt課件(3)for(表達式1;表達式2;表達式3){…if(表達式4)break;…}(4)for(表達式1;表達式2;表達式3){…if(表達式4)continue;…}表達式1表達式2真假……表達式4真假……for循環(huán)的下一條語句表達式3continue表達式1表達式2真假……表達式4真假……for循環(huán)的下一條語句表達式3break29ppt課件例6.5把100~200之間的不能被3整除的數(shù)輸出#include<stdio.h>voidmain(){intn;//存放數(shù)for(){

}}n=100;if(n%3==0)continue;printf("%d",n);if(n%3!=0)printf("%d",n);n<=200;n++30ppt課件§6.9程序舉例例6.6用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一項的絕對值小于10-6為止。設:s為當前項的分子,n為當前項的分母,t為當前項,pi為π。s=1,n=1,t=1,pi=0|t|>=10-6pi=pi+t;s=-s;n=n+2;t=s/n;真假pi=pi*4;輸出pi庫函數(shù)fabs(t),頭文件math.h1e-6或0.000001或pow(10,-6)頭文件math.h31ppt課件#include<stdio.h>#include<math.h>voidmain(){

doublen=1;//分母

doublet=1;//當前數(shù)據(jù)項

doublepi=0;while(fabs(t)>=1e-6){pi=pi+t;//累加當前數(shù)據(jù)項

s=-s;//計算下一項的分子

n=n+2;//計算下一項的分母

t=s/n;//計算下一項

}pi=pi*4;printf("pi=%10.7f\n",pi);}ints=1;//分子32ppt課件例6.7求Fibonacci(斐波那契)數(shù)列前40個數(shù)。這個數(shù)列有如下特點:第1,2兩個數(shù)為1,1。從第3個數(shù)開始,該數(shù)是其前面兩個數(shù)之和。即:F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2(n≥3)11235f1f2f1+f2f1f2+f1f2f1+f2f18…f2+f1f233ppt課件#include<stdio.h>voidmain(){

longintf1,f2;inti;

//循環(huán)控制變量f1=1;f2=1;

//賦初值for(i=1;i<=20;i++){printf(

溫馨提示

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

評論

0/150

提交評論