C語(yǔ)言程序控制結(jié)構(gòu)課件_第1頁(yè)
C語(yǔ)言程序控制結(jié)構(gòu)課件_第2頁(yè)
C語(yǔ)言程序控制結(jié)構(gòu)課件_第3頁(yè)
C語(yǔ)言程序控制結(jié)構(gòu)課件_第4頁(yè)
C語(yǔ)言程序控制結(jié)構(gòu)課件_第5頁(yè)
已閱讀5頁(yè),還剩195頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第4章程序控制結(jié)構(gòu)編輯課件1第4章程序控制結(jié)構(gòu)編輯課件1

主要內(nèi)容4.1C語(yǔ)言的執(zhí)行語(yǔ)句4.2順序結(jié)構(gòu)4.3選擇結(jié)構(gòu)4.4循環(huán)結(jié)構(gòu)編輯課件2主要內(nèi)容4.1C語(yǔ)言的執(zhí)行語(yǔ)句編輯課件24.1C語(yǔ)言的執(zhí)行語(yǔ)句C語(yǔ)言的語(yǔ)句分為聲明語(yǔ)句和執(zhí)行語(yǔ)句。第3章介紹的變量定義語(yǔ)句是最常見(jiàn)的聲明語(yǔ)句,聲明語(yǔ)句在編譯時(shí)處理,在程序運(yùn)行時(shí)不產(chǎn)生相應(yīng)的操作。執(zhí)行語(yǔ)句的作用是在程序運(yùn)行時(shí)向計(jì)算機(jī)系統(tǒng)發(fā)出操作命令,使計(jì)算機(jī)執(zhí)行特定的操作.

C語(yǔ)句:以“;”作結(jié)束符,編譯后產(chǎn)生機(jī)器指令。

C語(yǔ)句分類:表達(dá)式語(yǔ)句空語(yǔ)句控制語(yǔ)句復(fù)合語(yǔ)句編輯課件34.1C語(yǔ)言的執(zhí)行語(yǔ)句C語(yǔ)言的語(yǔ)句分為聲明語(yǔ)句和執(zhí)4.1.1表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句是在表達(dá)式的末尾加上分號(hào)構(gòu)成的語(yǔ)句。z=x+sin(y);a-=a*a;賦值語(yǔ)句i++;自增1語(yǔ)句x=0,y=1;逗號(hào)表達(dá)式語(yǔ)句x+y;無(wú)意義printf(“ThisisaCprogram.\n”);函數(shù)調(diào)用語(yǔ)句賦值語(yǔ)句和函數(shù)調(diào)用語(yǔ)句是使用最多的表達(dá)式語(yǔ)句如:

printf("ThisisaCstatement.");func(a,5);y=max(a,b);編輯課件44.1.1表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句是在表達(dá)式的末尾加上分號(hào)構(gòu)成的4.1.2空語(yǔ)句僅由一個(gè)“;”構(gòu)成的語(yǔ)句只是在邏輯上起到一個(gè)語(yǔ)句的作用,在編譯時(shí)不產(chǎn)生任何指令,在執(zhí)行時(shí)不產(chǎn)生任何操作。作用:構(gòu)成標(biāo)號(hào)語(yǔ)句,標(biāo)示流程的轉(zhuǎn)向點(diǎn);構(gòu)成循環(huán)語(yǔ)句中空循環(huán)體。例如:while(getchar()!=‘\n’);只要從鍵盤上輸入的字符不是回車則重新輸入。編輯課件54.1.2空語(yǔ)句僅由一個(gè)“;”構(gòu)成的語(yǔ)句編輯課件54.1.3復(fù)合語(yǔ)句用{}括起來(lái)的一組語(yǔ)句。一般形式:

{

執(zhí)行語(yǔ)句;

}

說(shuō)明:“}”后不加分號(hào)

其中最后一個(gè)語(yǔ)句后也要加分號(hào)語(yǔ)法上和單一語(yǔ)句相同

復(fù)合語(yǔ)句可嵌套如:

{z=x+y;t=z/100;printf("%f",t);

}如:

{z=x+y;{t=z/100;printf("%f",t);

}}編輯課件64.1.3復(fù)合語(yǔ)句用{}括起來(lái)的一組語(yǔ)句。說(shuō)明:如:如4.1.4控制語(yǔ)句控制語(yǔ)句:完成一定的控制功能。輔助控制if()…else…switchfor()…while()…do…while()continuebreakgotoreturn分支循環(huán)如:if(x>y)z=x;elsez=y;編輯課件74.1.4控制語(yǔ)句控制語(yǔ)句:完成一定的控制功能。輔助控制if4.2順序結(jié)構(gòu)流程圖流程圖是表示算法的一種工具,用一些圖框來(lái)表示各種操作。一個(gè)流程圖包括以下幾部分:表示相應(yīng)操作的框;帶箭頭的流程線;框內(nèi)外必要的文字說(shuō)明。如,順序結(jié)構(gòu)流程圖:AB編輯課件84.2順序結(jié)構(gòu)流程圖如,順序結(jié)構(gòu)流程圖:AB編輯課件8順序結(jié)構(gòu)常用的流程圖符號(hào):起止框判斷框處理框輸入/輸出框注釋框流向線連接點(diǎn)

N-S流程圖:完全去掉了流程線,算法的每一步都用矩形框描述,把一個(gè)個(gè)矩形框按執(zhí)行的次序連接起來(lái)就是一個(gè)完整的算法描述。編輯課件9順序結(jié)構(gòu)常用的流程圖符號(hào):起止框判斷框處理框輸入/輸出框注釋順序結(jié)構(gòu)結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu):按書寫順序執(zhí)行的語(yǔ)句構(gòu)成的程序段ABAB流程圖N-S圖

選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)編輯課件10順序結(jié)構(gòu)結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)ABAB流程圖N-S圖選例4.1輸入任意兩個(gè)整數(shù),求它們的和及平均值。要求平均值取兩位小數(shù)輸出。//例4.1#include<stdio.h>

#include<math.h>

voidmain()

{intnum1,num2;

floatsum,aver;printf("Pleaseinputtwointegers:\n");

scanf("%d,%d",&num1,&num2);

sum=(float)num1+num2;/*求累計(jì)和*/aver=sum/2.0; /*求平均值*/printf("sum=%.0f,aver=%.2f\n",sum,aver);}運(yùn)行情況:

30000,5005

sum=35005,aver=17502.50開(kāi)始輸入兩整數(shù)計(jì)算sum計(jì)算aver結(jié)束編輯課件11例4.1輸入任意兩個(gè)整數(shù),求它們的和及平均值。要求平均值取例4.2給定一個(gè)三位正整數(shù),分別輸出其個(gè)位數(shù)、十位數(shù)和百位數(shù)。#include<stdio.h>voidmain(){intm,m0,m1,m2;printf(“Inputanumber(100~999):”);scanf("%d",&m);

m0=m%10;m1=(m/10)%10;m2=m/100;

printf("%d,%d,%d\n",m0,m1,m2);}運(yùn)行結(jié)果:

Inputanumber(100~999):263輸出:3,6,2編輯課件12例4.2給定一個(gè)三位正整數(shù),分別輸出其個(gè)位數(shù)、十位數(shù)和百位例4.3取一個(gè)16位的二進(jìn)制數(shù)a的7、6、5、4四個(gè)位,如圖4-2中加陰影的部分。voidmain(){unsigneda,b,c,d;scanf("%x",&a);/*以十六進(jìn)制形式輸入整數(shù)a*/b=a>>4;c=~(~0<<4);d=b&c;printf("%x\n%x\n",a,d);/*以十六進(jìn)制輸出a和結(jié)果d*/}編輯課件13例4.3取一個(gè)16位的二進(jìn)制數(shù)a的7、6、5、4四個(gè)位,如例4.4求ax2+bx+c=0方程的根。a,b,c由鍵盤輸入,設(shè)>0。一元二次方程式的根為

x1=x2=

可以將上面的分式分為兩項(xiàng):

p=,q=,則x1=p+q,x2=p-q。順序結(jié)構(gòu)編輯課件14例4.4求ax2+bx+c=0方程的根。a,b,c由鍵盤#include<stdio.h>

#include<math.h>

voidmain()

{

floata,b,c,disc,x1,x2,p,q;

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

disc=b*b-4*a*c;

p=-b/(2*a);

q=sqrt(disc)/(2*a);

x1=p+q;x2=p-q;printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2);

}運(yùn)行情況:

輸入:a=1,b=3,c=2輸出:x1=-1.00

x2=-2.00編輯課件15#include<stdio.h>

#include<4.3選擇結(jié)構(gòu)選擇結(jié)構(gòu)是指在程序執(zhí)行過(guò)程中,根據(jù)指定條件的當(dāng)前值在兩條或多條路徑中選擇一條執(zhí)行。C語(yǔ)言的選擇控制語(yǔ)句有兩條:條件選擇語(yǔ)句:if語(yǔ)句開(kāi)關(guān)分支語(yǔ)句:switch語(yǔ)句編輯課件164.3選擇結(jié)構(gòu)選擇結(jié)構(gòu)是指在程序執(zhí)行過(guò)程中,根據(jù)指定條件的當(dāng)4.3.1if語(yǔ)句表達(dá)式語(yǔ)句1真(非0)假(0)1、if格式(單分支語(yǔ)句)

if(判斷表達(dá)式)語(yǔ)句1;

語(yǔ)句1可以是一條語(yǔ)句或復(fù)合語(yǔ)句。注意:滿足條件時(shí)想要執(zhí)行多條語(yǔ)句一定要用復(fù)合語(yǔ)句

當(dāng)判斷表達(dá)式值不為零(即”真”),則執(zhí)行語(yǔ)句1,再執(zhí)行其后繼語(yǔ)句;否則,不執(zhí)行語(yǔ)句1,執(zhí)行其后繼語(yǔ)句。編輯課件174.3.1if語(yǔ)句表達(dá)式語(yǔ)句1真(非0)假1、if格式(單分支語(yǔ)句判斷表達(dá)式應(yīng)該是具有一定意義、有實(shí)用價(jià)值的表達(dá)式,因此,最常用關(guān)系表達(dá)式和邏輯表達(dá)式來(lái)表達(dá),例如:if(a==b)if(a==0)等價(jià)于if(!a)if(a!=0)等價(jià)于if(a)if(a>=5&&a<=10)例:輸入一個(gè)整數(shù),求絕對(duì)值. main() { inti; scanf("%d",&i); if(i<0)i=-i; printf("%d",i); }例:執(zhí)行下列程序段后a的值是____。

inta=3;if(2)a=5;編輯課件18單分支語(yǔ)句判斷表達(dá)式應(yīng)該是具有一定意義、有實(shí)用價(jià)值的表達(dá)式,單分支語(yǔ)句#include<stdio.h>main(){charc;printf("inputaletter:");c=getchar();if(c>='A'&&c<='z')c=c+32;printf("%c\n",c);}例4.5從鍵盤輸入一個(gè)字母,以小寫字母形式輸出該字母編輯課件19單分支語(yǔ)句#include<stdio.h>例4.5從單分支語(yǔ)句例4.6從鍵盤輸入兩個(gè)整數(shù),按升序輸出這兩個(gè)數(shù)。#include<stdio.h>

voidmain()

{inta,b,t;

scanf("%d%d",&a,&b);

if(a>b)

{t=a;//交換兩數(shù)

a=b;

b=t;}

printf("%d,%d\n",a,b);}TFa>bt=aa=bb=t編輯課件20單分支語(yǔ)句例4.6從鍵盤輸入兩個(gè)整數(shù),按升序輸出這兩個(gè)數(shù)。#例:輸入三個(gè)數(shù)a,b,c,要求按由小到大的順序輸出。Ifa>b將a和b對(duì)換Ifa>c將a和c對(duì)換Ifb>c將b和c對(duì)換a>ba>cb>ca和b交換a和c交換c和b交換yyynn單分支語(yǔ)句編輯課件21例:輸入三個(gè)數(shù)a,b,c,要求按由小到大的順序輸出。If單分支語(yǔ)句#include<stdio.h>

voidmain()

{

floata,b,c,t;

scanf("%f%f%f",&a,&b,&c);

if(a>b)

{

t=a;

a=b;

b=t;

}

if(a>c)

{

t=a;

a=c;

c=t;

}

if(b>c)

{

t=b;

b=c;

c=t;

}

printf("%5.2f,%5.2f,%5.2f\n",a,b,c);

}{}必不可少,否則,會(huì)出現(xiàn)邏輯錯(cuò)誤!編輯課件22單分支語(yǔ)句#include<stdio.h>

voi2、if(表達(dá)式)語(yǔ)句1else語(yǔ)句2

條件

語(yǔ)句1

語(yǔ)句2YN雙分支if-else語(yǔ)句各有一個(gè)分號(hào);但屬于一個(gè)語(yǔ)句例:if(x>y)printf(“%d”,x);elseprintf(“%d”,y);編輯課件232、if(表達(dá)式)語(yǔ)句1條件語(yǔ)句雙分支if-else語(yǔ)句說(shuō)明:在if和else后面可以只含有一條語(yǔ)句,也可以含有用花括號(hào){}括起來(lái)的復(fù)合語(yǔ)句。如:if((a+b)>c&&(b+c)>a&&(c+a)>b){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%6.2f",area);}elseprintf("itisnotatrilateral.");編輯課件24雙分支if-else語(yǔ)句說(shuō)明:在if和else后面可以只含有例:輸入兩個(gè)數(shù)并判斷兩數(shù)是否相等。#include<stdio.h>voidmain(){inta,b;printf("Enterintegera:");scanf("%d",&a);printf("Enterintegerb:");scanf("%d",&b);

if(a==b)printf("a==b\n");elseprintf("a!=b\n");}運(yùn)行結(jié)果:

Enterintegera:12

Enterintegerb:12a==b

運(yùn)行結(jié)果:

Enterintegera:12

Enterintegerb:9a!=b

雙分支if-else語(yǔ)句編輯課件25例:輸入兩個(gè)數(shù)并判斷兩數(shù)是否相等。#include<st分析以下程序的輸出結(jié)果:(1)#include<stdio.h>

voidmain()

{

inta,b;

scanf("%d",&a);

b=1;

if(a==5)

b=a+3;

b=6;

printf("%d\n",b);}(2)#include<stdio.h>voidmain(){inta,b,t;

scanf("%d%d",&a,&b);

if(a>b)t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);getch();}編輯課件26分析以下程序的輸出結(jié)果:(1)#include<stdi(3)#include<stdio.h>

voidmain()

{

intx,y;

scanf("%d",&x);

y=-1;

if(x!=0)y=1;

if(x>0)y=1;elsey=0;

}(4)程序輸出結(jié)果#include<stdio.h>voidmain(){

intx,y;

scanf("%d",&x);

y=0;

if(x>=0)

{if(x>0)y=1;}

else

y=-1;printf("%d\n",y);}編輯課件27(3)#include<stdio.h>

void3.多分支語(yǔ)句幾種形式:

if(表達(dá)式1){if(表達(dá)式2)

語(yǔ)句1}else

語(yǔ)句2

內(nèi)嵌if

if(表達(dá)式1)

語(yǔ)句1elseif(表達(dá)式2)

語(yǔ)句3else

語(yǔ)句4內(nèi)嵌if

if(表達(dá)式1)if(表達(dá)式2)語(yǔ)句1else語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3else語(yǔ)句4內(nèi)嵌if內(nèi)嵌if

if(表達(dá)式1)if(表達(dá)式2)

語(yǔ)句1else

語(yǔ)句2內(nèi)嵌if編輯課件283.多分支語(yǔ)句幾種形式:if(表達(dá)式1)內(nèi)嵌ifif(表3、if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3

……elseif(表達(dá)式m)語(yǔ)句melse語(yǔ)句n多分支語(yǔ)句編輯課件293、if(表達(dá)式1)語(yǔ)句1多分支語(yǔ)句編輯課件29例:

if(number>500)cost=0.15;elseif(number>300)cost=0.10;elseif(number>100)cost=0.075;elseif(number>50)cost=0.05;elsecost=0;多分支語(yǔ)句編輯課件30例:多分支語(yǔ)句編輯課件30多分支語(yǔ)句匹配規(guī)則:Else總是與它上面的,最近的,統(tǒng)一復(fù)合語(yǔ)句中的,未配對(duì)的if語(yǔ)句配對(duì)。當(dāng)if和else數(shù)目不同時(shí),可以加花括號(hào)來(lái)確定配對(duì)關(guān)系。例:if(a==b)if(b==c)printf(“a==b==c”);elseprintf(“a!=b”);修改:if(a==b){if(b==c)printf(“a==b==c”);}elseprintf(“a!=b”);編輯課件31多分支語(yǔ)句匹配規(guī)則:當(dāng)if和else數(shù)目不同時(shí),可以加花括號(hào)

-1(x<0)例有一個(gè)函數(shù)y=0(x=0),編一程序,輸入一個(gè)x值,輸出y值。1(x>0)算法1:算法1: 輸入x輸入x

若x<0,則y=-1若x<0,則y=-1

若x=0,則y=0否則: 若x>0,則y=1若x=0,則y=0

輸出y若x>0,則y=1

輸出y

多分支語(yǔ)句編輯課件32

程序#include<stdio.h>voidmain(){intx,y;scanf(“%d”,&x);{

if(x<0)y=-1;elseif(x==0)y=0;elsey=1;}printf(“x=%d,y=%d\n”,x,y);}if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;正確?編輯課件33程序if(x>=0)正確?編輯課件33程序1:程序2:

if(x<0)if(x>=0)y=-1;if(x>0)y=1;elseelsey=0;if(x==0)y=0;elsey=-1;elsey=1;程序3:程序4:y=-1;y=0;if(x!=0)if(x>=0)if(x>0)y=1;if(x>0)y=1;elsey=0;elsey=-1;正確正確上例中的程序段有四個(gè),請(qǐng)判斷哪個(gè)是正確的?X<0時(shí),y=0X=0時(shí),y=-1編輯課件34正正上例中的程序段有四個(gè),請(qǐng)判斷哪個(gè)是正確的?X<0時(shí),y=多分支語(yǔ)句例4.7:輸入百分制成績(jī),要求輸出相應(yīng)的五級(jí)制成績(jī)。百分制成績(jī)與五級(jí)制成績(jī)之間的轉(zhuǎn)換標(biāo)準(zhǔn)為:90分以上為“A”,80-89分為“B”,70-79分為“C”,60-69分為“D”,60分以下為“E”。編輯課件35多分支語(yǔ)句例4.7:輸入百分制成績(jī),要求輸出相應(yīng)的五級(jí)制成績(jī)If語(yǔ)句嵌套voidmain(){intscore;printf("\nPleaseinputthescore(0-100):");scanf("%d",&score);

if(score>=90)printf("A\n");

elseif(score>=80)printf("B\n");

elseif(score>=70)printf("C\n");

elseif(score>=60)printf("D\n");

elseprintf("E\n");}編輯課件36If語(yǔ)句嵌套voidmain()編輯課件36多分支語(yǔ)句例4.8分段函數(shù)定義如右:根據(jù)所輸入的x的值,求函數(shù)值。main(){floatx,y;scanf("%f",&x);if(x<0)y=0;elseif(x<=50)y=x;elsey=x*x;printf("x=%f,y=%f\n",x,y);}編輯課件37多分支語(yǔ)句例4.8分段函數(shù)定義如右:編輯課件374.3.2switch語(yǔ)句switch語(yǔ)句的格式:switch

(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1[break;]case常量表達(dá)式2:語(yǔ)句2[break;]

…case常量表達(dá)式n:語(yǔ)句n[break;]default:語(yǔ)句n+1}執(zhí)行過(guò)程:當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí),就從此case后面的語(yǔ)句開(kāi)始執(zhí)行下去,若所有的case中的常量表達(dá)式的值都沒(méi)有與表達(dá)式的值匹配的,就執(zhí)行default后面的語(yǔ)句。編輯課件384.3.2switch語(yǔ)句switch語(yǔ)句的格式:執(zhí)行過(guò)程switch語(yǔ)句case1語(yǔ)句組1break?case2語(yǔ)句組2break?caseN語(yǔ)句組nbreak?是是是否否否有無(wú)無(wú)無(wú)有有caseN+1編輯課件39switch語(yǔ)句case1語(yǔ)句組1break?case2switch語(yǔ)句執(zhí)行流程:首先計(jì)算switch圓括號(hào)中表達(dá)式的值,然后將結(jié)果值按前后順序依次與各個(gè)case后的常量表達(dá)式進(jìn)行比較。當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí),就執(zhí)行該case后邊的語(yǔ)句組k,接著如果遇到break語(yǔ)句,則結(jié)束整個(gè)switch語(yǔ)句(即退出switch)。如果不遇到break語(yǔ)句,則按順序執(zhí)行下面其他case后邊的語(yǔ)句組,直至遇到break語(yǔ)句或最后邊的“}”為止,才結(jié)束switch語(yǔ)句當(dāng)結(jié)果值與常量表達(dá)式k的值都不相等時(shí),若有default,則執(zhí)行其后語(yǔ)句;若無(wú)default,則什么都沒(méi)執(zhí)行編輯課件40switch語(yǔ)句執(zhí)行流程:編輯課件40switch語(yǔ)句說(shuō)明:1)switch關(guān)鍵字,case也是關(guān)鍵字,與其后面的常量表達(dá)式合稱case語(yǔ)句標(biāo)號(hào),常量表達(dá)式類型必須與switch后面表達(dá)式類型相匹配,且各case語(yǔ)句標(biāo)號(hào)的值各不相同,不能重復(fù);default也是關(guān)鍵字,起語(yǔ)句標(biāo)號(hào)的作用,代表除了以上所有case標(biāo)號(hào)之外的那些標(biāo)號(hào);2)語(yǔ)句1、語(yǔ)句2可以是一條語(yǔ)句,也可以是若干條,在必要時(shí),case語(yǔ)句標(biāo)號(hào)后的語(yǔ)句可以省略不寫;3)switch的表達(dá)式通常是一個(gè)整型或字符型變量,也允許枚舉型變量,其結(jié)果為相應(yīng)的整數(shù)、字符或枚舉常量;4)break語(yǔ)句不是一定需要加上,執(zhí)行完一個(gè)case后面的語(yǔ)句,若沒(méi)有遇到break,就自動(dòng)進(jìn)入下一個(gè)case繼續(xù)執(zhí)行,而不再判斷是否與之匹配。編輯課件41switch語(yǔ)句說(shuō)明:編輯課件41當(dāng)程序在執(zhí)行時(shí),如果輸入的是′A′#include"stdio.h"main(){chara;a=getchar();switch(a)

{case65:printf("%c",′A′);case66:printf("%c",′B′);default:printf("%s\n","other");}}運(yùn)行結(jié)果:

ABother編輯課件42當(dāng)程序在執(zhí)行時(shí),如果輸入的是′A′#include"st當(dāng)程序在執(zhí)行時(shí),屏幕上輸出為:#include"stdio.h"main(){intk=2;switch(k)

{case1:printf("%d\n",k++);break;case2:printf("%d",k++);case3:printf("%d\n",k++);break;cade4:printf("%d\n",k++);default:printf("Full!\n“);}}運(yùn)行結(jié)果:

23編輯課件43當(dāng)程序在執(zhí)行時(shí),屏幕上輸出為:#include"stdiswitch語(yǔ)句例:要求按照考試成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段,用switch語(yǔ)句實(shí)現(xiàn)

應(yīng)寫為:

switch(grade){case'A':printf("85~100\n");break;

case'B':printf("70~84\n");break;

case'C':printf("60~69\n");break;

case'D':printf("<60\n");break;default:printf("error\n");

}編輯課件44switch語(yǔ)句例:要求按照考試成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段,補(bǔ)充例:輸入成績(jī),用A、B、C、D、F、R分別表示優(yōu)、良、中、及格、不及格、補(bǔ)考、缺考。grade=getchar();switch(grade){ case'A':case'a':printf("優(yōu)");break; case'B':case'b':printf("良");break; case'C':case'c':printf("中");break; case'D':case'd':printf("及格");break; case'F':case'f':printf("不及格");/*此處沒(méi)有break語(yǔ)句*/ case'R':case'r':printf("請(qǐng)補(bǔ)考");break; default:printf("輸入錯(cuò)");}編輯課件45補(bǔ)充例:輸入成績(jī),用A、B、C、D、F、R分別表示優(yōu)、良、switch語(yǔ)句例:某幼兒園只收2至6歲的兒童。2~3歲入小班,4歲入中班,5~6歲入大班。根據(jù)輸入的年齡,求應(yīng)入的班級(jí)。分析:設(shè)年齡為age,當(dāng)age為2和3時(shí),應(yīng)輸出同樣的內(nèi)容“入小班”,age為5和6時(shí)輸出同樣的內(nèi)容“入大班”。該題算法比較簡(jiǎn)單。編輯課件46switch語(yǔ)句例:某幼兒園只收2至6歲的兒童。2~3歲入小switch語(yǔ)句#include<stdio.h>voidmain(){intage;printf("Pleaseenterage:");

scanf("%d",&age);switch(age){case2: case3: printf("入小班\n");break; case4: printf("入中班\n");break; case5: case6: printf("入大班\n");break; default: printf("不能入園\n");}}

編輯課件47switch語(yǔ)句#include<stdio.h>編輯課件voidmain(){intx,y,a=0,b=0;scanf("x=%d,y=%d",&x,&y);

switch(x){case1:

switch(y){case0:a++;case1:b++;default:a++;b++;}break;case2:a+=2;b+=2;break;default:a+=3;b+=3;}printf("a=%d,b=%d\n",a,b);}運(yùn)行結(jié)果:輸入:x=1,y=0輸出:a=2b=2switch語(yǔ)句的嵌套編輯課件48voidmain()運(yùn)行結(jié)果:switch語(yǔ)句的嵌套編輯課選擇結(jié)構(gòu)程序舉例例4.13輸入一個(gè)字符,判別該字符是數(shù)字、英文大寫字母、小寫字母還是其它字符。#include<stdio.h>voidmain(){charc;printf("inputachar:");c=getchar();if(c>='0'&&c<='9')printf("Thisisadigit.\n");elseif(c>='A'&&c<='Z')printf("Thisisacapitalletter.\n");elseif(c>='a'&&c<='z')printf("Thisisasmallletter.\n");elseprintf("Thisisanothercharacter.\n");}編輯課件49選擇結(jié)構(gòu)程序舉例例4.13輸入一個(gè)字符,判別該字符是數(shù)字選擇結(jié)構(gòu)程序舉例例4.14輸入三角形三邊長(zhǎng),求三角形面積。#include<math.h>voidmain(){floata,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%7.2f\n",area);}

elseprintf("Notatriangle.\n");}編輯課件50選擇結(jié)構(gòu)程序舉例例4.14輸入三角形三邊長(zhǎng),求三角形面積選擇結(jié)構(gòu)程序舉例例4.15輸入a、b、c三個(gè)整數(shù),輸出最大數(shù)和最小數(shù)。

voidmain(){inta,b,c,max,min;printf("inputthreenumbers:");

scanf("%d,%d,%d",&a,&b,&c);max=a>b?a:b;min=a<=b?a:b;

if(c>max)max=c;

elseif(c<min)min=c;printf("max=%d\nmin=%d",max,min);}

編輯課件51選擇結(jié)構(gòu)程序舉例例4.15輸入a、b、c三個(gè)整數(shù),輸出最課堂練習(xí)1.以下程序的運(yùn)行結(jié)果是()。

main(){intn=5;if(n++>=6)printf("%d\n",n);elseprintf("%d\n",++n);}2.對(duì)于整型變量a,賦值語(yǔ)句a=(a%3==0?1:0);與()語(yǔ)句不等價(jià)。

(A)if(a%3==0)a=1;elsea=0; (B)if(a%3!=0)a=0;elsea=1; (C)if(a%3)a=0;elsea=1; (D)if(a%3)a=1;elsea=0;編輯課件52課堂練習(xí)1.以下程序的運(yùn)行結(jié)果是()。編輯課件52課堂練習(xí)3.以下程序的運(yùn)行結(jié)果是()。main(){intn='c';switch(n++){default:printf("error");break;case'a':case'b':printf("good");break;case'c':printf("pass");case'd':printf("warn");}}編輯課件53課堂練習(xí)3.以下程序的運(yùn)行結(jié)果是()。編輯課件53循環(huán)結(jié)構(gòu)在許多問(wèn)題中需要用到循環(huán)控制。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)之一,它和順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同作為各種復(fù)雜程序的基本構(gòu)造單元。特點(diǎn):當(dāng)給定的條件成立時(shí),反復(fù)執(zhí)行某個(gè)程序段,直到條件不成立為止。給定的條件稱為循環(huán)條件,反復(fù)執(zhí)行的程序段稱為循環(huán)體,它由C的語(yǔ)句構(gòu)成。C語(yǔ)言提供了3種循環(huán)結(jié)構(gòu):while語(yǔ)句;do-while語(yǔ)句;for語(yǔ)句編輯課件54循環(huán)結(jié)構(gòu)在許多問(wèn)題中需要用到循環(huán)控制。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)4.4.1用while語(yǔ)句實(shí)現(xiàn)循環(huán)while語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。一般形式:

while(表達(dá)式)語(yǔ)句當(dāng)表達(dá)式為非0值時(shí),執(zhí)行while語(yǔ)句中的內(nèi)嵌語(yǔ)句。其特點(diǎn)是:先判斷表達(dá)式,后執(zhí)行語(yǔ)句。(1)與if的區(qū)別,if只一次,while反復(fù)判斷,反復(fù)執(zhí)行;(2)while語(yǔ)句中通常有改變表達(dá)式的值的語(yǔ)句。編輯課件554.4.1用while語(yǔ)句實(shí)現(xiàn)循環(huán)while語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)用while語(yǔ)句實(shí)現(xiàn)循環(huán)例4.18計(jì)算1+2+…+100。main(){inti=1,s=0;while(i<=100){s+=i;i++;}printf("%d,%d",i,s);getch();}1.如果缺少i++這一行會(huì)出現(xiàn)什么情況?2.若計(jì)算:n!該程序應(yīng)如何修改?編輯課件56用while語(yǔ)句實(shí)現(xiàn)循環(huán)例4.18計(jì)算1+2+…+1例4.19根據(jù)公式計(jì)算π的值。#include<math.h>voidmain(){inti=1,n;doublepi=0;printf("Inputaninteger:\n");scanf("%d",&n);

while(i<=n){pi+=1.0/(i*i);i++;}pi=sqrt(pi*6);printf("pi=%lf\n",pi);}編輯課件57例4.19根據(jù)公式用while語(yǔ)句實(shí)現(xiàn)循環(huán)例4.21猴子吃桃問(wèn)題:猴子摘下了一堆桃子,第一天吃總數(shù)的一半多一個(gè),第二天吃剩下的一半多一個(gè),以后每天都吃前一天剩下的一半多一個(gè),到第十天想再吃時(shí)剩一個(gè),求猴子摘了多少個(gè)桃子?算法分析:

設(shè)第i天未吃前有xi個(gè)桃子,由題意得:x1/2-1=x2x2/2-1=x3…x9/2-1=x10已知x10=1,我們有:x10=1xn-1=(xn+1)*2voidmain(){intk,x1,x2;k=1;x2=1;while(k<=9){x1=(x2+1)*2;x2=x1;k++;}printf("Totalnumber=%d\n",x1);}編輯課件58用while語(yǔ)句實(shí)現(xiàn)循環(huán)例4.21猴子吃桃問(wèn)題:猴子摘下了用while語(yǔ)句實(shí)現(xiàn)循環(huán)補(bǔ)充1.統(tǒng)計(jì)從鍵盤輸入的字符個(gè)數(shù)。(以回車結(jié)束)補(bǔ)充2.從鍵盤輸入一個(gè)整數(shù)(至少大于9),求最高位的數(shù)字.

#include<stdio.h>main(){intcount=0;while(getchar()!='\n') count++;printf("count=%d",count);}

這種結(jié)構(gòu)的循環(huán)次數(shù)是不確定的。while(d>9)d=d/10;

/*反復(fù)執(zhí)行d=d/10*/

printf("最高位是%d",d);也可寫成:

while((d/=10)>9); /*空循環(huán)體,反復(fù)執(zhí)行d=d/10*/printf("最高位是%d",d);編輯課件59用while語(yǔ)句實(shí)現(xiàn)循環(huán)補(bǔ)充1.統(tǒng)計(jì)從鍵盤輸入的字符個(gè)數(shù)。4.4.2用do-while實(shí)現(xiàn)循環(huán)

do-while語(yǔ)句的特點(diǎn):先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。一般形式:

do{

循環(huán)體語(yǔ)句

}while(表達(dá)式);

執(zhí)行過(guò)程:先執(zhí)行一次指定的循環(huán)體語(yǔ)句,然后判別表達(dá)式,當(dāng)表達(dá)式的值為非零(“真”)時(shí),返回重新執(zhí)行循環(huán)體語(yǔ)句,如此反復(fù),直到表達(dá)式的值等于0為止,此時(shí)循環(huán)結(jié)束。編輯課件604.4.2用do-while實(shí)現(xiàn)循環(huán)do-用do-while實(shí)現(xiàn)循環(huán)用do-while計(jì)算:1+2+…+100。main(){inti=1,s=0;do{s=s+i;i++;}while(i<=100);printf("%d,%d",i,s);getch();}計(jì)算:1-3+5-7…+101main(){inti=1,s=0;ints=1,t=1;do{s=s+t*i;i=i+2t=-t;}while(i<=101);printf("%d\t",s);}編輯課件61用do-while實(shí)現(xiàn)循環(huán)用do-while計(jì)算:1+2用do-while實(shí)現(xiàn)循環(huán)例4.22利用格里高公式:求π,直到最后一項(xiàng)的值小于10-6。voidmain(){ints=1;floatn=1.0,t=1,pi=0;do{pi=pi+t;n=n+2; /*分母每循環(huán)一次增加2*/s=-s; /*單項(xiàng)的正負(fù)號(hào)交替變化*/t=s/n; /*下一項(xiàng)的值*/

}while(fabs(t)>1e-6);pi=pi*4;printf("pi=%10.6f\n",pi);}編輯課件62用do-while實(shí)現(xiàn)循環(huán)例4.22利用格里高公式:編輯課while和do…while循環(huán)的比較

上述程序的功能是什么?比較:輸入5和11時(shí)兩個(gè)程序的輸出結(jié)果如何?#include<stdio.h>voidmain(){inti,sum=0;scanf("%d",&i);do{sum+=i; i++;}while(i<=10);printf("%d",sum);}#include<stdio.h>voidmain(){inti,sum=0;scanf("%d",&i);while(i<=10){sum+=i; i++;}printf("%d",sum);}

當(dāng)型循環(huán)最少執(zhí)行次數(shù)是多少?直到型循環(huán),最少執(zhí)行次數(shù)是多少?編輯課件63while和do…while循環(huán)的比較上述程序的功能是什么4.4.3用for語(yǔ)句實(shí)現(xiàn)循環(huán)C語(yǔ)言中的for語(yǔ)句使用最為靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語(yǔ)句。一般形式:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體也可寫作:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)循環(huán)體for語(yǔ)句等價(jià)于如下的while循環(huán)形式:

表達(dá)式1;while(表達(dá)式2){

語(yǔ)句表達(dá)式3;

}編輯課件644.4.3用for語(yǔ)句實(shí)現(xiàn)循環(huán)C語(yǔ)言中的for語(yǔ)句使用最為靈用for語(yǔ)句實(shí)現(xiàn)循環(huán)for語(yǔ)句的執(zhí)行過(guò)程:

(1)先求解表達(dá)式1。

(2)求解表達(dá)式2,若其值為真(值為非0),則執(zhí)行for語(yǔ)句中指定的內(nèi)嵌語(yǔ)句,然后執(zhí)行下面第(3)步。若為假(值為0),則結(jié)束循環(huán),轉(zhuǎn)到第(5)步。

(3)求解表達(dá)式3。

(4)轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行。

(5)循環(huán)結(jié)束,執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句

編輯課件65用for語(yǔ)句實(shí)現(xiàn)循環(huán)for語(yǔ)句的執(zhí)行過(guò)程:編輯課件65用for循環(huán)計(jì)算:1+2+…+100。

main() { inti,s=0; for(i=1;i<=100;i++)/*注意括號(hào)后沒(méi)有分號(hào)*/ s=s+i;/*

求和:1+2+3+…+100*/ printf("%d",s); }變量i用于控制循環(huán)次數(shù),我們稱其為循環(huán)控制變量。1.最后i的值是多少?2.從1加到10000或更多呢?用for語(yǔ)句實(shí)現(xiàn)循環(huán)編輯課件66用for循環(huán)計(jì)算:1+2+…+100。變量i用于控制循環(huán)說(shuō)明:表達(dá)式1,表達(dá)式2和表達(dá)式3之間必須用分號(hào)隔開(kāi),但表達(dá)式3后面不能加分號(hào)。循環(huán)體如果包含一個(gè)以上的語(yǔ)句,應(yīng)該用花括弧括起來(lái),以復(fù)合語(yǔ)句形式出現(xiàn)。循環(huán)體有可能一次也不執(zhí)行。循環(huán)體可以為空。表達(dá)式1和表達(dá)式3都可以為逗號(hào)表達(dá)式。(例)表達(dá)式1,表達(dá)式2和表達(dá)式3都可省略,但不鼓勵(lì)省略表達(dá)式2和表達(dá)式3。(例:省略表達(dá)式1)for語(yǔ)句循環(huán)與while循環(huán)可以互相轉(zhuǎn)換,但for循環(huán)的結(jié)構(gòu)更簡(jiǎn)潔。編輯課件67說(shuō)明:表達(dá)式1,表達(dá)式2和表達(dá)式3之間必須用分號(hào)隔開(kāi),但表達(dá)for語(yǔ)句的省略形式例(1):i=1;for(;i<=1000;i++)sum=sum+i;

例(2):for(i=1;i<=1000;){sum=sum+i;i++;}例(3):for(i=1;;i++){if(i>1000)break;sum=sum+i;}1)表達(dá)式1可省略,但分號(hào)不能省,在for語(yǔ)句前為變量賦初值;2)表達(dá)式3也可省略,但應(yīng)把其放入循環(huán)體內(nèi),否則for無(wú)法正常結(jié)束;3)表達(dá)式2省略后,for語(yǔ)句將無(wú)限循環(huán)下去??稍谘h(huán)體內(nèi)加退出循環(huán)的語(yǔ)句編輯課件68for語(yǔ)句的省略形式例(1):i=1;例(2):ffor語(yǔ)句的省略形式4)表達(dá)式1和表達(dá)式3可以是一個(gè)簡(jiǎn)單的表達(dá)式,也可以是一個(gè)逗號(hào)表達(dá)式,表達(dá)式1和表達(dá)式3也可以是與循環(huán)無(wú)關(guān)的任意表達(dá)式;5)三個(gè)表達(dá)式全省略,無(wú)終止執(zhí)行循環(huán)體,分號(hào)不能省;6)把循環(huán)體內(nèi)容放到表達(dá)式3,循環(huán)體為空語(yǔ)句。盡量避免此寫法例(4):i=1,sum=0;for(p=0;i<=100;p+=1){sum=sum+i;i++;}

例(6):for(i=1,sum=0;i>1000;sum=sum+i,i++);例(5):i=1,sum=0;for(;;){sum=sum+i;i++;if(i>100)break;}編輯課件69for語(yǔ)句的省略形式4)表達(dá)式1和表達(dá)式3可以是一個(gè)簡(jiǎn)單的表用for語(yǔ)句實(shí)現(xiàn)循環(huán)例4.25求1!+2!+…+10!的值。voidmain(){inti,n=10;longs,t;for(i=1,t=1,s=0;i<=n;i++){t*=i;/*t為上一個(gè)數(shù)i-1的階乘值,再乘以i,即i!=(i-1)!*i*/s+=t;/*累加i!*/}printf("s=%ld\n",s);}編輯課件70用for語(yǔ)句實(shí)現(xiàn)循環(huán)例4.25求1!+2!+…+10!的值用for語(yǔ)句實(shí)現(xiàn)循環(huán)例4.27編程輸出“斐波那契數(shù)列”的前20項(xiàng)?!办巢瞧鯏?shù)列”是意大利中世紀(jì)數(shù)學(xué)家列昂納多·斐波那契以兔子繁殖為例子而引入的,故又稱為“兔子數(shù)列”。main(){inti,x1=1,x2=1;for(i=1;i<=10;i++)/*每次生成并輸出兩項(xiàng),所以循環(huán)10次*/{printf("%10d%10d",x1,x2);if(i%2==0)printf("\n");/*當(dāng)i為偶數(shù)時(shí)換行,即每四個(gè)換行*/x1=x1+x2;x2=x2+x1;}}編輯課件71用for語(yǔ)句實(shí)現(xiàn)循環(huán)例4.27編程輸出“斐波那契數(shù)列”的前用for語(yǔ)句實(shí)現(xiàn)循環(huán)最簡(jiǎn)單的寫法:main(){inti,j,k=10000; for(i=1,j=0;i<=k;i=i+j,j=i-j)printf("%d",i);}這里:i表示fibonacci(n) i=i+j;即第n項(xiàng)=第n-1項(xiàng)+第n-2項(xiàng)

j=i-j;即第n-1項(xiàng)=第n項(xiàng)-第n-2項(xiàng) 使i存放當(dāng)前項(xiàng),j存放前一項(xiàng)程序運(yùn)行結(jié)果為:

11235813213455891442333776109871597258441816765編輯課件72用for語(yǔ)句實(shí)現(xiàn)循環(huán)最簡(jiǎn)單的寫法:程序運(yùn)行結(jié)果為:編輯課件74.4.4continue語(yǔ)句和break語(yǔ)句1.break語(yǔ)句

(1)在while、for、do~while語(yǔ)句的循環(huán)體或switch語(yǔ)句的語(yǔ)句組中,使用break語(yǔ)句可使程序立即退出該結(jié)構(gòu)。故有中斷語(yǔ)句之稱。其語(yǔ)法格式如下:

break;

(2)功能:用在循環(huán)語(yǔ)句或switch語(yǔ)句中,使得跳出循環(huán)體或分支,提前結(jié)束循環(huán)或分支。編輯課件734.4.4continue語(yǔ)句和break語(yǔ)句1.brcontinue語(yǔ)句和break語(yǔ)句#include<stdio.h>voidmain(){inti;for(i=1;;i++)

if(!((512-i*15)%13))break;printf("%d+%d=512\n",i*15,512-i*15);}例4.28將數(shù)字512表示成兩個(gè)數(shù)的和,這兩個(gè)數(shù)分別為15和13的倍數(shù)。運(yùn)行結(jié)果:

135+377=512編輯課件74continue語(yǔ)句和break語(yǔ)句#include<stcontinue語(yǔ)句和break語(yǔ)句

說(shuō)明

break只能終止并跳出最近一層的循環(huán)結(jié)構(gòu)。

break不能用于循環(huán)語(yǔ)句和switch語(yǔ)句之外的任何其它語(yǔ)句之中。在循環(huán)語(yǔ)句中,break總是與選擇語(yǔ)句配合使用。main(){inti,s;s=0;for(i=1;i<=10;i++){s=s+i;if(s>5)break;printf("%d\n",s);}}運(yùn)行結(jié)果:

13編輯課件75continue語(yǔ)句和break語(yǔ)句說(shuō)明main()運(yùn)行結(jié)continue語(yǔ)句和break語(yǔ)句2.continue語(yǔ)句一般形式:continue;功能:用在循環(huán)語(yǔ)句中,使得結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。補(bǔ)充例題:

for(i=1;i<=10;i++){ if(i%2==0)continue; printf(“%d”,i);}該程序的功能是:只打印出單數(shù)編輯課件76continue語(yǔ)句和break語(yǔ)句2.continuecontinue語(yǔ)句和break語(yǔ)句

說(shuō)明:continue只能終止本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。

continue不能用于循環(huán)語(yǔ)句之外的任何其它語(yǔ)句之中.continue總是與選擇語(yǔ)句配合使用。//例4.29

#include<stdio.h>voidmain(){inti,n=0;for(i=100;i<=200;i++){if((i%7!=0)&&(i%9!=0)) continue; printf("%5d",i); n++;

if(n%5==0) printf("\n");}}例4.29輸出100~200之間所有能被7或9整除的數(shù)。編輯課件77continue語(yǔ)句和break語(yǔ)句說(shuō)明://例4.29continue語(yǔ)句和break語(yǔ)句補(bǔ)充例:計(jì)算輸入的10個(gè)整數(shù)中正數(shù)的個(gè)數(shù)及正數(shù)平均值。

main(){inti,n,a; floats=0.0; printf("請(qǐng)輸入10個(gè)整數(shù):\n"); for(n=0,i=0;i<10;i++) {scanf("%d",&a); if(a<=0)continue;/*或改為if(a>0)下兩句要加{}*/ s+=a; n++; } printf("共有%d個(gè)正數(shù).其平均值為%f。\n",n,s/n);}編輯課件78continue語(yǔ)句和break語(yǔ)句補(bǔ)充例:計(jì)算輸入的10個(gè)3.continue和break的區(qū)別:continue語(yǔ)句只是結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行,而break語(yǔ)句則是結(jié)束整個(gè)循環(huán)過(guò)程,不再判斷條件是否成立。編輯課件793.continue和break的區(qū)別:編輯課件79continue語(yǔ)句和break語(yǔ)句main(){inti,a=0,b=0,c=0,d=0;for(i=1;i<=4;i++){switch(i){case1:a=1;continue;case2:b=2;case3:c=3;break;case4:d=4;}printf("%d%d%d%d\n",a,b,c,d);}}main(){inti,s;s=0;for(i=1;i<=10;i++){s=s+I;if(s>5)break;printf("%d\n",s);}}編輯課件80continue語(yǔ)句和break語(yǔ)句main()main()continue語(yǔ)句和break語(yǔ)句main(){intk=4,n=0;clrscr();for(;n<k;){n++;if(n%3!=0)break; k--;}printf("%d,%d\n",k,n);}運(yùn)行結(jié)果:

4,1將break改為continue運(yùn)行結(jié)果:

3,3編輯課件81continue語(yǔ)句和break語(yǔ)句main()運(yùn)行結(jié)果:

4.4.5循環(huán)的嵌套循環(huán)的嵌套:一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu)。多層循環(huán):內(nèi)嵌的循環(huán)中還可以嵌套循環(huán)。三種循環(huán)(while循環(huán)、do-while循環(huán)和for循環(huán))可以互相嵌套,層數(shù)不限。循環(huán)嵌套形式舉例:(1)while()(2)do(3)for(;;){…{…{…while()dofor(;;){…}{…}{…}…while();…}}}while();編輯課件824.4.5循環(huán)的嵌套循環(huán)的嵌套:一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整循環(huán)的嵌套(4)while()(5)for(;;)(6)do{…{…{…do

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論