第5章C語(yǔ)言語(yǔ)句類(lèi)型與基本控制結(jié)構(gòu)_第1頁(yè)
第5章C語(yǔ)言語(yǔ)句類(lèi)型與基本控制結(jié)構(gòu)_第2頁(yè)
第5章C語(yǔ)言語(yǔ)句類(lèi)型與基本控制結(jié)構(gòu)_第3頁(yè)
第5章C語(yǔ)言語(yǔ)句類(lèi)型與基本控制結(jié)構(gòu)_第4頁(yè)
第5章C語(yǔ)言語(yǔ)句類(lèi)型與基本控制結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩55頁(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)介

1、 5.1 c語(yǔ)言語(yǔ)句類(lèi)型語(yǔ)言語(yǔ)句類(lèi)型 5.2 程序的三種基本結(jié)構(gòu)程序的三種基本結(jié)構(gòu) 5.3 if語(yǔ)句語(yǔ)句 5.4 switch語(yǔ)句語(yǔ)句 5.5 while語(yǔ)句語(yǔ)句 5.6 do-while語(yǔ)句語(yǔ)句 5.7 for語(yǔ)句語(yǔ)句 5.8 循環(huán)嵌套循環(huán)嵌套 5.9 break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句 5.1 c語(yǔ)言語(yǔ)句類(lèi)型 c c語(yǔ)句分為語(yǔ)句分為5類(lèi)類(lèi)控制語(yǔ)句控制語(yǔ)句函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句空語(yǔ)句空語(yǔ)句復(fù)合語(yǔ)句復(fù)合語(yǔ)句空語(yǔ)句空語(yǔ)句 只有一個(gè)分號(hào)(;)的語(yǔ)句只有一個(gè)分號(hào)(;)的語(yǔ)句 (什么也不做)(什么也不做)表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句 語(yǔ)句形式:語(yǔ)句形式:表達(dá)式;表達(dá)式;例如:

2、例如:a a* *=10;=10;(a+b(a+b* *5)20;5)20;注意:注意:一個(gè)表達(dá)式可以成為另一個(gè)更復(fù)雜的表達(dá)式一個(gè)表達(dá)式可以成為另一個(gè)更復(fù)雜的表達(dá)式的一部分,而表達(dá)式語(yǔ)句則不能。的一部分,而表達(dá)式語(yǔ)句則不能。例如:例如:a=b(表達(dá)式),可以寫(xiě)(表達(dá)式),可以寫(xiě)(a=b)0 a=b;(表達(dá)式語(yǔ)句),不可以寫(xiě)(表達(dá)式語(yǔ)句),不可以寫(xiě)(a=b;)0復(fù)合語(yǔ)句復(fù)合語(yǔ)句 用一對(duì)用一對(duì) 括起來(lái)的語(yǔ)句括起來(lái)的語(yǔ)句 z=x+y;t=z/100;printf(“%f”,t);注意:注意:復(fù)合語(yǔ)句中最后一個(gè)語(yǔ)句中最后的分號(hào)復(fù)合語(yǔ)句中最后一個(gè)語(yǔ)句中最后的分號(hào)不能忽略不寫(xiě)。不能忽略不寫(xiě)。 函數(shù)調(diào)用語(yǔ)句

3、函數(shù)調(diào)用語(yǔ)句 語(yǔ)句形式:語(yǔ)句形式:函數(shù)名(實(shí)參列表);函數(shù)名(實(shí)參列表);例如:例如:scanf(scanf(“%d%d”,&a);,&a); printf( printf(“%d%d”,a);,a);控制語(yǔ)句控制語(yǔ)句 用于完成一定的控制功能用于完成一定的控制功能c c語(yǔ)言有語(yǔ)言有9 9中控制語(yǔ)句:中控制語(yǔ)句:if() elseif() else/條件語(yǔ)句,實(shí)現(xiàn)選擇結(jié)構(gòu)條件語(yǔ)句,實(shí)現(xiàn)選擇結(jié)構(gòu)switchswitch/多分支選擇語(yǔ)句多分支選擇語(yǔ)句while()while()/當(dāng)型循環(huán)語(yǔ)句,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)語(yǔ)句,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)do while()do while()/直到型循環(huán)語(yǔ)句直到型循環(huán)語(yǔ)句

4、for()for()/循環(huán)語(yǔ)句循環(huán)語(yǔ)句continuecontinue/結(jié)束本次循環(huán)語(yǔ)句結(jié)束本次循環(huán)語(yǔ)句breakbreak/中止執(zhí)行中止執(zhí)行switchswitch或循環(huán)語(yǔ)句或循環(huán)語(yǔ)句gotgoto o/轉(zhuǎn)向語(yǔ)句轉(zhuǎn)向語(yǔ)句returnreturn/從函數(shù)返回語(yǔ)句從函數(shù)返回語(yǔ)句5.2 程序的三種基本結(jié)構(gòu)程序的三種基本結(jié)構(gòu) 程序的基本結(jié)構(gòu)有三種:程序的基本結(jié)構(gòu)有三種: (1) (1) 順序結(jié)構(gòu):各操作步驟順序執(zhí)行,是一順序結(jié)構(gòu):各操作步驟順序執(zhí)行,是一種最簡(jiǎn)單的基本結(jié)構(gòu)。種最簡(jiǎn)單的基本結(jié)構(gòu)。 (2) (2) 選擇結(jié)構(gòu)選擇結(jié)構(gòu) (3) (3) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 例例 交換兩個(gè)變量的值交換兩個(gè)變量的值

5、#include void main()int a=3,b=5,c;printf(“交換前:交換前:a=%d,b=%d”,a,b);c=a;a=b;b=c;printf(“交換后:交換后:a=%d,b=%d”,a,b);順序結(jié)構(gòu)程序設(shè)計(jì)舉例順序結(jié)構(gòu)程序設(shè)計(jì)舉例例例 輸入三角形的三邊輸入三角形的三邊長(zhǎng),求三角形面積。長(zhǎng),求三角形面積。假設(shè):三個(gè)邊長(zhǎng)假設(shè):三個(gè)邊長(zhǎng)a a,b b,c c能構(gòu)能構(gòu)成三角形。成三角形。已知面積公式:已知面積公式:area=area=s=(a+b+c)/2s=(a+b+c)/2c)-b)(s-a)(s-s(s開(kāi)始開(kāi)始輸入三邊長(zhǎng)輸入三邊長(zhǎng)計(jì)算計(jì)算s s計(jì)算面積計(jì)算面積結(jié)束結(jié)

6、束#include#include#include#includevoid main()void main() float a,b,c,s,area;float a,b,c,s,area;scanf(“%f%f%f”,&a,&b,&c);scanf(“%f%f%f”,&a,&b,&c);s=1.0/2s=1.0/2* *(a+b+c);(a+b+c);area=area=sqrtsqrt(s(s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c);(s-c);printf(“a=%7.2f, b=%7.2f, c=%7.2f, printf(“a=%7.2f, b=%7.2f,

7、 c=%7.2f, s=%7.2fn”,a,b,c,s);s=%7.2fn”,a,b,c,s);printf(“area=%7.2fn”,area);printf(“area=%7.2fn”,area); 數(shù)學(xué)函數(shù)庫(kù)因?yàn)橐玫狡渲械膕qrt函數(shù)運(yùn)行情況:3.4 4.5 5.6a= 3.40, b=4.50, c=5.60area=7.65 5.3 if語(yǔ)句語(yǔ)句5.3.1 if語(yǔ)句的語(yǔ)句的3種形式種形式ifif語(yǔ)句形式語(yǔ)句形式ifif(表達(dá)式)(表達(dá)式) 語(yǔ)句語(yǔ)句表達(dá)式為條件判斷表達(dá)式,表達(dá)式為條件判斷表達(dá)式,結(jié)果為邏輯值結(jié)果為邏輯值例:例: if(xy) printf(“%d”,x);表達(dá)式表

8、達(dá)式語(yǔ)句語(yǔ)句真(非真(非0)假假(0) if的內(nèi)嵌語(yǔ)句通常多于一條語(yǔ)句,這時(shí)必須的內(nèi)嵌語(yǔ)句通常多于一條語(yǔ)句,這時(shí)必須使用使用 把這些語(yǔ)句括起來(lái),形成復(fù)合語(yǔ)句,把這些語(yǔ)句括起來(lái),形成復(fù)合語(yǔ)句,使其在語(yǔ)法上成為一條單語(yǔ)句使其在語(yǔ)法上成為一條單語(yǔ)句 例如:例如: if (x0) y=1; z=10; printf(“y=%d,z=%dn”,y,z); 如果不加如果不加 ,程序會(huì)有什么變化,程序會(huì)有什么變化 例:輸入一個(gè)學(xué)生的兩門(mén)課程考試成例:輸入一個(gè)學(xué)生的兩門(mén)課程考試成績(jī),如果兩門(mén)課程成績(jī)均在績(jī),如果兩門(mén)課程成績(jī)均在90分以上,分以上,則顯示則顯示“優(yōu)秀優(yōu)秀”。 分析:分析: 輸入兩門(mén)課程的考試成績(jī)

9、(輸入兩門(mén)課程的考試成績(jī)(scanf) 判斷兩門(mén)課程成績(jī)是否均在判斷兩門(mén)課程成績(jī)是否均在90分以上分以上 如果如果“是是”,則顯示,則顯示“優(yōu)秀優(yōu)秀”if 需要定義兩個(gè)變量需要定義兩個(gè)變量x1、x2存放輸入的存放輸入的成績(jī)成績(jī) 用用scanf接受輸入的數(shù)據(jù)存放到接受輸入的數(shù)據(jù)存放到x1、x2中中 判斷是否是判斷是否是x190并且并且x290 如果是,則如果是,則printf(“優(yōu)秀優(yōu)秀”);if #include main() float x1,x2; printf(“請(qǐng)輸入兩門(mén)課程的考試成請(qǐng)輸入兩門(mén)課程的考試成績(jī):績(jī):”); scanf(“%f%f”,&x1,&x2); if (x190&x

10、290) printf(“優(yōu)秀優(yōu)秀n”); lif-elseif-else語(yǔ)句形式語(yǔ)句形式if(if(表達(dá)式表達(dá)式) ) 語(yǔ)句語(yǔ)句1 1else else 語(yǔ)句語(yǔ)句2 2例:例: if (xy) printf(“%d”,x); else printf(“%d”,y); 條件條件 語(yǔ)句語(yǔ)句1 語(yǔ)句語(yǔ)句2yn開(kāi)始開(kāi)始輸入輸入a,b輸出輸出zabz=az=b結(jié)束結(jié)束#include void main()int a,b,z;scanf(“%d,%d”,a,b);if (ab) z=a;else z=b;printf(“最大數(shù)是:最大數(shù)是:%d”,z); yesno 例:輸入一個(gè)英文字母,判斷是否為大

11、例:輸入一個(gè)英文字母,判斷是否為大寫(xiě)字母,若是,則轉(zhuǎn)換成小寫(xiě)字母輸出,寫(xiě)字母,若是,則轉(zhuǎn)換成小寫(xiě)字母輸出,否則不轉(zhuǎn)換直接輸出。否則不轉(zhuǎn)換直接輸出。 分析:分析: 輸入一個(gè)英文字母存放在變量輸入一個(gè)英文字母存放在變量ch中中 判斷判斷ch是否為大寫(xiě)字母是否為大寫(xiě)字母 如果是則需要將其轉(zhuǎn)換為小寫(xiě)字母如果是則需要將其轉(zhuǎn)換為小寫(xiě)字母 輸出字母輸出字母 char ch; printf(請(qǐng)輸入一個(gè)英文字母:請(qǐng)輸入一個(gè)英文字母:); scanf(%c,&ch); if(ch=a&chb,則,則max=a,否則,否則max=b; 再判斷:再判斷: 如果如果maxb) max=a; else max=b; if

12、(cmax) max=c; printf(三個(gè)數(shù)中最大的值為:三個(gè)數(shù)中最大的值為:%dn,max);lif-else ifif-else if語(yǔ)句形式:語(yǔ)句形式:ifif(表達(dá)式(表達(dá)式1 1)語(yǔ)句)語(yǔ)句1 1else if(else if(表達(dá)式表達(dá)式2)2)語(yǔ)句語(yǔ)句2 2else if(else if(表達(dá)式表達(dá)式3)3)語(yǔ)句語(yǔ)句3 3 else if(else if(表達(dá)式表達(dá)式m)m)語(yǔ)句語(yǔ)句m melse else 語(yǔ)句語(yǔ)句n n3 例:例: scanf(“%d”,&grade); if (grade100 | grade=90) score=a; else if(grade=80)

13、 score=b; else if(grade=70) score=c; else if(grade=60) score=d; else score=e;例:例: scanf(“%d”,&grade); if (grade=90 & grade=90 & grade=80) score= else if(grade=80) score=b b; ; else if(grade=70) score= else if(grade=70) score=c c; ; else if(grade=60) score= else if(grade=60) score=d d; ; else if(grad

14、e=0) score= else if(grade=0) score=e e; ; 例:求解下面的分段函數(shù)并顯示結(jié)果。例:求解下面的分段函數(shù)并顯示結(jié)果。 分析:分析: 分段函數(shù)中需要用到兩個(gè)變量分段函數(shù)中需要用到兩個(gè)變量x、y 判斷判斷x的范圍,根據(jù)判斷結(jié)果選擇使用哪個(gè)公的范圍,根據(jù)判斷結(jié)果選擇使用哪個(gè)公式計(jì)算式計(jì)算y的值的值 聲明變量聲明變量x、y 輸入輸入x的值的值 判斷:如果判斷:如果x10,則,則y=2*x; 否則再判斷是否否則再判斷是否x=0并且并且x10) y=2*x; else if(x=0) y=x+1; else y=x-10; printf(y=%d,y); 例例 輸入某人

15、的身高和體重,根據(jù)下面輸入某人的身高和體重,根據(jù)下面的計(jì)算公式判斷此人的體重是標(biāo)準(zhǔn)、的計(jì)算公式判斷此人的體重是標(biāo)準(zhǔn)、過(guò)胖還是過(guò)瘦。過(guò)胖還是過(guò)瘦。 (1)標(biāo)準(zhǔn)體重)標(biāo)準(zhǔn)體重=(身高(身高-110)公斤;)公斤; (2)超過(guò)標(biāo)準(zhǔn)體重)超過(guò)標(biāo)準(zhǔn)體重5公斤為過(guò)胖;公斤為過(guò)胖; (3)低于標(biāo)準(zhǔn)體重)低于標(biāo)準(zhǔn)體重5公斤為過(guò)瘦。公斤為過(guò)瘦。 步驟:步驟: 將輸入的身高存放到變量將輸入的身高存放到變量h中,體重存中,體重存放到變量放到變量w中中 計(jì)算標(biāo)準(zhǔn)體重,放到變量計(jì)算標(biāo)準(zhǔn)體重,放到變量bw 中中(bw=h-110)。)。 如果如果w-bw5,則體重過(guò)胖,否則進(jìn)一,則體重過(guò)胖,否則進(jìn)一步進(jìn)行判斷,如果步進(jìn)行

16、判斷,如果bw-w5,則體重過(guò),則體重過(guò)瘦,否則體重為標(biāo)準(zhǔn)。瘦,否則體重為標(biāo)準(zhǔn)。 #include main() float h,w,bw; printf(請(qǐng)輸入某人的身高和體重(公斤):); scanf(%f%f,&h,&w); bw=h-110; if(w-bw5) printf(過(guò)胖n); else if(bw-w5) printf(過(guò)瘦n); else printf(標(biāo)準(zhǔn)n); ifif語(yǔ)句的嵌套語(yǔ)句的嵌套在在ifif語(yǔ)句中又包含一個(gè)或多個(gè)語(yǔ)句中又包含一個(gè)或多個(gè)ifif語(yǔ)句語(yǔ)句稱(chēng)為稱(chēng)為ifif語(yǔ)句的嵌套。語(yǔ)句的嵌套。形式:形式:if(if(表達(dá)式表達(dá)式1)1)if(if(表達(dá)式表達(dá)式2

17、 2) ) 語(yǔ)句語(yǔ)句1 1else else 語(yǔ)句語(yǔ)句2 2elseelseif(if(表達(dá)式表達(dá)式3 3) ) 語(yǔ)句語(yǔ)句3 3else else 語(yǔ)句語(yǔ)句4 4內(nèi)嵌內(nèi)嵌ifif 例例 輸入三個(gè)數(shù)輸入三個(gè)數(shù)x,y,z,然后按從大到小輸出。然后按從大到小輸出。 如果如果xy&xz,說(shuō)明,說(shuō)明x最大,應(yīng)該首先輸出,最大,應(yīng)該首先輸出,然后判斷,如果然后判斷,如果yz,則接下來(lái)應(yīng)該先輸出,則接下來(lái)應(yīng)該先輸出y然后輸出然后輸出z,否則接下來(lái)應(yīng)該先輸出,否則接下來(lái)應(yīng)該先輸出z后輸出后輸出y。 如果如果yx&yz,說(shuō)明,說(shuō)明y最大,應(yīng)該首先輸出,最大,應(yīng)該首先輸出,然后判斷,如果然后判斷,如果xz,則接下

18、來(lái)應(yīng)該先輸出,則接下來(lái)應(yīng)該先輸出x然后輸出然后輸出z,否則接下來(lái)應(yīng)該先輸出,否則接下來(lái)應(yīng)該先輸出z后輸出后輸出x。 如果以上兩種情況都不是,則說(shuō)明如果以上兩種情況都不是,則說(shuō)明z最大,應(yīng)最大,應(yīng)該首先輸出該首先輸出z的值,然后判斷,如果的值,然后判斷,如果xy,則,則接下倆應(yīng)該按照先接下倆應(yīng)該按照先x后后y的順序輸出,否則應(yīng)的順序輸出,否則應(yīng)該按照先該按照先y后后x的順序輸出。的順序輸出。xy&xz輸出輸出x真真yz輸出輸出y輸出輸出z輸出輸出z輸出輸出yyx&yz輸出輸出y真真xz輸出輸出x輸出輸出z輸出輸出z輸出輸出x輸出輸出zxy輸出輸出x輸出輸出y輸出輸出y輸出輸出x假假假假假假假假假

19、假真真真真真真 #include main() float x,y,z; printf(請(qǐng)輸入三個(gè)數(shù)字:請(qǐng)輸入三個(gè)數(shù)字:);scanf(%f%f%f,&x,&y,&z); printf(三數(shù)從大到小為:三數(shù)從大到小為:”); if(x=y&x=z)printf(%ft,x);if(y=z)printf(%ft%fn,y,z);else printf(%ft%fn,z,y);else if(y=x&y=z)printf(%ft,y);if(x=z)printf(%ft%fn,x,z);elseprintf(%ft%fn,z,x); elseprintf(%ft,z);if(x=y)printf(

20、%ft%fn,x,y);elseprintf(%ft%fn,y,x); 例 輸入三個(gè)數(shù)a,b,c,要求按由大到小的順序輸出。if ab if ab 將將a a和和b b對(duì)換對(duì)換if ac if ac 將將a a和和c c對(duì)換對(duì)換if bc if bc 將將b b和和c c對(duì)換對(duì)換nabacbca和b交換a和c交換c和b交換yyynn#include #include void main ( ) void main ( ) float a,b,c,t;float a,b,c,t; scanf( scanf(“%f,%f,%f%f,%f,%f”,&a,&b,&c);,&a,&b,&c); if(a

21、if(a b)b) t=a;a=b;b=t;t=a;a=b;b=t; if(a if(a c)c) t=a;a=c;c=t;t=a;a=c;c=t; if(bc) if(bc) t=b;b=c;c=t;t=b;b=c;c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); printf(%5.2f,%5.2f,%5.2fn,a,b,c); 匹配規(guī)則:匹配規(guī)則:elseelse總是與它上面的,最近的,總是與它上面的,最近的,同一復(fù)合語(yǔ)句中的,未配對(duì)的同一復(fù)合語(yǔ)句中的,未配對(duì)的ifif語(yǔ)句配對(duì)。語(yǔ)句配對(duì)。例:if()if() 語(yǔ)句1elseif() 語(yǔ)句2 else 語(yǔ)句3例

22、:if()if() 語(yǔ)句1elseif() 語(yǔ)句2 else 語(yǔ)句3當(dāng)當(dāng)ifif和和elseelse數(shù)目不同時(shí),可以加數(shù)目不同時(shí),可以加花括號(hào)花括號(hào)來(lái)確定配對(duì)關(guān)系。來(lái)確定配對(duì)關(guān)系。 -1 (x0)#include#includevoid main()void main() int x,y; int x,y; scanf( scanf(“%d%d”,&x);,&x); 程序段程序段 printf( printf(“x=%d,y=%dnx=%d,y=%dn”,x,y);,x,y); 上例中的程序段有四個(gè),請(qǐng)判斷哪個(gè)是正確的?上例中的程序段有四個(gè),請(qǐng)判斷哪個(gè)是正確的?程序程序1: 程序程序2: if

23、(x=0) y=-1; if(x0) y=1; else else y=0; if(x= =0) y=0; else y=-1; else y=1;程序程序3: 程序程序4: y=-1; y=0; if(x!=0) if(x=0) if(x0) y=1; if(x0) y=1; else y=0; else y=-1;正確正確條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符和條件表達(dá)式格式:格式: 表達(dá)式?表達(dá)式表達(dá)式?表達(dá)式表達(dá)式表達(dá)式功能:功能: 判斷判斷表達(dá)式表達(dá)式1 1的值,如果成立就執(zhí)行的值,如果成立就執(zhí)行表表 達(dá)式達(dá)式2 2,否則就執(zhí)行,否則就執(zhí)行表達(dá)式表達(dá)式3 3例:例: ifif ()() m

24、ax=max=; else else maxmax;當(dāng)當(dāng)abab時(shí)將時(shí)將a a的值賦給的值賦給maxmax,當(dāng),當(dāng)abab時(shí)將時(shí)將b b的值賦給的值賦給maxmax,可以看到無(wú)論可以看到無(wú)論abab是否滿(mǎn)足,都是向同一個(gè)變量賦值。是否滿(mǎn)足,都是向同一個(gè)變量賦值。 可以用下面的條件運(yùn)算符來(lái)處理:可以用下面的條件運(yùn)算符來(lái)處理: ()?)?;輸入一個(gè)整數(shù)輸入一個(gè)整數(shù)c,判斷,判斷c是否大于是否大于10,如果大于如果大于10,則輸出,則輸出“c10”,否,否則,輸出則,輸出“c10) printf(“c10”);else printf(“c10?”c10”:”cb?amax=ab?a:b+1b+1相當(dāng)

25、于:相當(dāng)于: max=(ab)?a:(b+1)max=(ab)?a:(b+1)不等于:不等于: max=(ab?a:bmax=(ab?a:b)+1+1說(shuō)明:(2).(2).條件運(yùn)算符的結(jié)合方向?yàn)闂l件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷笞杂抑磷蟆薄?( (3).3).“表達(dá)式表達(dá)式2 2”和和“表達(dá)式表達(dá)式3 3”不僅可以是數(shù)值表達(dá)式,不僅可以是數(shù)值表達(dá)式,還可以是賦值表達(dá)式或函數(shù)表達(dá)式。還可以是賦值表達(dá)式或函數(shù)表達(dá)式。(4).(4).條件表達(dá)式中,表達(dá)式的類(lèi)型可以與表達(dá)式條件表達(dá)式中,表達(dá)式的類(lèi)型可以與表達(dá)式和表達(dá)式的類(lèi)型不同。和表達(dá)式的類(lèi)型不同。 例例 輸入一個(gè)字符,判別它是否大寫(xiě)字母,如果輸入一個(gè)

26、字符,判別它是否大寫(xiě)字母,如果是,將它轉(zhuǎn)換成小寫(xiě)字母;如果不是,不轉(zhuǎn)換。是,將它轉(zhuǎn)換成小寫(xiě)字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。然后輸出最后得到的字符。#include void main ( ) char ch; scanf(%c,& ch); ch=(ch=a& ch=z)?(ch+32):ch;printf(%cn,ch);5.4 switch語(yǔ)句switchswitch (表達(dá)式)(表達(dá)式) casecase常量表達(dá)式:語(yǔ)句序列常量表達(dá)式:語(yǔ)句序列 casecase常量表達(dá)式:語(yǔ)句序列常量表達(dá)式:語(yǔ)句序列 case case常量表達(dá)式常量表達(dá)式i i:語(yǔ)句序列:語(yǔ)句序列i i

27、 case case常量表達(dá)式:語(yǔ)句序列常量表達(dá)式:語(yǔ)句序列 default default :語(yǔ)句序列:語(yǔ)句序列 功能:當(dāng)功能:當(dāng)switchswitch后的表達(dá)式的值與某后的表達(dá)式的值與某casecase分支中的分支中的常量表達(dá)式常量表達(dá)式i i相等時(shí),執(zhí)行該相等時(shí),執(zhí)行該casecase分支后語(yǔ)句序列直分支后語(yǔ)句序列直到退出到退出switchswitch結(jié)構(gòu),否則執(zhí)行結(jié)構(gòu),否則執(zhí)行defaultdefault后的語(yǔ)句序列。后的語(yǔ)句序列。例例: :要求按照考試成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段,用要求按照考試成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段,用switchswitch語(yǔ)句實(shí)現(xiàn):語(yǔ)句實(shí)現(xiàn):switch(g

28、radegrade) case printfprintf(););break;/break;/表示退出表示退出switchswitch結(jié)構(gòu)結(jié)構(gòu) case printf printf (););break;break; case case printf printf (););break;break; case case printf printf (););break;break; default printf printf ( );); 說(shuō)明:說(shuō)明:(1)switch(1)switch和和casecase語(yǔ)句中的表達(dá)式需要是整型、字語(yǔ)句中的表達(dá)式需要是整型、字符類(lèi)型或者枚舉類(lèi)型。符類(lèi)型或者枚

29、舉類(lèi)型。(2) (2) 每一個(gè)每一個(gè)casecase的常量表達(dá)式的值必須互不相同,的常量表達(dá)式的值必須互不相同,否則就會(huì)出現(xiàn)互相矛盾的現(xiàn)象(對(duì)表達(dá)式的同否則就會(huì)出現(xiàn)互相矛盾的現(xiàn)象(對(duì)表達(dá)式的同一個(gè)值,有兩種或多種執(zhí)行方案)。一個(gè)值,有兩種或多種執(zhí)行方案)。(3) (3) 執(zhí)行完一個(gè)執(zhí)行完一個(gè)casecase后面的語(yǔ)句后,流程控制轉(zhuǎn)后面的語(yǔ)句后,流程控制轉(zhuǎn)移到下一個(gè)移到下一個(gè)casecase繼續(xù)執(zhí)行。不再判斷表達(dá)式與繼續(xù)執(zhí)行。不再判斷表達(dá)式與“casecase常量表達(dá)式常量表達(dá)式”是否相等。是否相等。為避免執(zhí)行后為避免執(zhí)行后面面casecase分支中的語(yǔ)句,應(yīng)該在一個(gè)分支中的語(yǔ)句,應(yīng)該在一個(gè)ca

30、secase分支后分支后, , 用一個(gè)用一個(gè)breakbreak語(yǔ)句來(lái)終止語(yǔ)句來(lái)終止switchswitch語(yǔ)句的執(zhí)行。語(yǔ)句的執(zhí)行。 switch(grade) case printf();); case printf ();); case printf ();); case printf ();); default printf ( );); (4) (4) 良好的程序邏輯結(jié)構(gòu)應(yīng)該有良好的程序邏輯結(jié)構(gòu)應(yīng)該有defaultdefault分支,分支,但也可以沒(méi)有這個(gè)分支,如果沒(méi)有但也可以沒(méi)有這個(gè)分支,如果沒(méi)有defaultdefault,那,那么在找不到與表達(dá)式相等的常量表達(dá)式時(shí),不執(zhí)么在找不到與表達(dá)式相等的常量表達(dá)式時(shí),不執(zhí)行任何分支。行任何分支。defaultdefault語(yǔ)句的位置沒(méi)有要求。語(yǔ)句的位置沒(méi)有要求。 (5) (5) 多個(gè)多個(gè)casecase可以共用一組執(zhí)行語(yǔ)句??梢怨灿靡唤M執(zhí)行語(yǔ)句。 int i=10;switch(i)d

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論