《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第4章:選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第4章:選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第4章:選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第4章:選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第4章:選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩37頁(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)介

第3章最簡(jiǎn)單的C程序設(shè)計(jì),(時(shí)間:4次課,8學(xué)時(shí)),第四章 選擇結(jié)構(gòu)程序設(shè)計(jì),學(xué)習(xí)目的與要求: 通過(guò)前面章節(jié)的學(xué)習(xí),已經(jīng)看到了,語(yǔ)句的執(zhí)行是按照書(shū)寫(xiě)的順序執(zhí)行的,這種結(jié)構(gòu)稱(chēng)為“順序結(jié)構(gòu)”。但程序的執(zhí)行并不一定是按照語(yǔ)句序列的書(shū)寫(xiě)順序執(zhí)行的。結(jié)構(gòu)化程序設(shè)計(jì)方法規(guī)定程序的基本結(jié)構(gòu)有三種,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。在大多數(shù)的程序中都會(huì)遇到根據(jù)給定的條件來(lái)決定是否執(zhí)行、如何執(zhí)行等情況,這就涉及到使用選擇結(jié)構(gòu)設(shè)計(jì)程序。 本章主要介紹關(guān)系運(yùn)算符和關(guān)系表達(dá)式、邏輯運(yùn)算符和邏輯表達(dá)式、if語(yǔ)句、switch語(yǔ)句。要求掌握關(guān)系運(yùn)算符和關(guān)系表達(dá)式的定義和使用;掌握邏輯運(yùn)算符和邏輯表達(dá)式的定義和使用;掌握if語(yǔ)句和switch語(yǔ)句的定義和使用。,第四章 選擇結(jié)構(gòu)程序設(shè)計(jì),4.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 4.2邏輯運(yùn)算符和邏輯表達(dá)式 4.3 if語(yǔ)句 4.4 switch語(yǔ)句 4.5 程序舉例 4.6上機(jī)實(shí)訓(xùn),4.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式,所謂“關(guān)系運(yùn)算”實(shí)際上就是“比較運(yùn)算”,即將兩個(gè)數(shù)據(jù)進(jìn)行比較,判定兩個(gè)數(shù)據(jù)是否符合給定的關(guān)系。 例如,“a b”中的“”表示一個(gè)大于關(guān)系運(yùn)算。如果a的值是5,b的值是3,則大于關(guān)系運(yùn)算“”的結(jié)果為“真”,即條件成立;如果a的值是2,b的值是3,則大于關(guān)系運(yùn)算“”的結(jié)果為“假”,即條件不成立。,4.1.1 關(guān)系運(yùn)算符,在程序中經(jīng)常需要比較兩個(gè)量的大小關(guān)系,以決定程序下一步的工作。比較兩個(gè)量的運(yùn)算符稱(chēng)為關(guān)系運(yùn)算符。在C語(yǔ)言中有以下關(guān)系運(yùn)算符: 大于 = 大于或等于 = = 等于 != 不等于 關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性均為左結(jié)合。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。在六個(gè)關(guān)系運(yùn)算符中,=的優(yōu)先級(jí)相同,高于= =和!=,= =和!=的優(yōu)先級(jí)相同。 注意 在語(yǔ)言中,“等于”關(guān)系運(yùn)算符是雙等號(hào)“= =”,而不是單等 號(hào)“=”(賦值運(yùn)算符)。,4.1.2 關(guān)系表達(dá)式,關(guān)系表達(dá)式的一般形式為: 表達(dá)式 關(guān)系運(yùn)算符 表達(dá)式 例如:a+bc-d,x3/2,a+1(bc),a!=(c= =d)等。 由于語(yǔ)言沒(méi)有邏輯型數(shù)據(jù),所以用整數(shù)“”表示“邏輯真”,用整數(shù)“”表示“邏輯假”。如:50的值為“真”,即為1。(a=3)(b=5)由于35不成立,故其值為假,即為0。 例如,假設(shè)num1=3,num2=4,num3=5,則: (1)num1num2的值=0。 (2)(num1num2)!=num3的值=1。 (3)num1num2num3的值=1。 (4)(num1num2)+num3的值=6,因?yàn)閚um1num2的值=1,1+5=6。,4.1.2 關(guān)系表達(dá)式,【例4.1】 main( ) char c=k; int i=1,j=2,k=3;float x=3e+5,y=0.85; printf(“%d,%dn“,a+5=k+1); printf(“%d,%dn“,1j5,x-5.25=x+y); printf(“%d,%dn“,i+j+k= =-2*j,k= =j= =i+5); 運(yùn)行結(jié)果: 1,0 1,1 0,0 在本例中求出了各種關(guān)系運(yùn)算符的值。字符變量是以它對(duì)應(yīng)的ASCII碼參與運(yùn)算的。對(duì)于含多個(gè)關(guān)系運(yùn)算符的表達(dá)式,如k= =j= =i+5,根據(jù)運(yùn)算符的左結(jié)合性,先計(jì)算k= =j,該式不成立,其值為0,再計(jì)算0= =i+5,也不成立,故表達(dá)式值為0。,4.2邏輯運(yùn)算符和邏輯表達(dá)式,關(guān)系表達(dá)式只能描述單一條件,例如“x=0”。如果需要描述“x=0”、同時(shí)“x10”,就要借助于邏輯表達(dá)式了。,4.2.1 邏輯運(yùn)算符,C語(yǔ)言提供三種邏輯運(yùn)算符: & 邏輯與(相當(dāng)于“同時(shí)”) | 邏輯或(相當(dāng)于“或者”) ! 邏輯非(相當(dāng)于“否定”) 例如,下面的表達(dá)式都是邏輯表達(dá)式: (x=0) & (x5), ! (x= =0),(year%4= =0)&(year%100!=0)|(year%400= =0) 與運(yùn)算符&和或運(yùn)算符|均為雙目運(yùn)算符。具有左結(jié)合性。非運(yùn)算符!為單目運(yùn)算符,具有右結(jié)合性。邏輯運(yùn)算符和其它運(yùn)算符優(yōu)先級(jí)的關(guān)系可表示如下: !(非) &(與) |(或) ! 算術(shù)運(yùn)算 關(guān)系運(yùn)算 & | 賦值運(yùn)算 按照運(yùn)算符的優(yōu)先順序可以得出: ab & cd等價(jià)于(ab) & (cd) !b= =c|dc & x+yc) & (x+y)b) 邏輯運(yùn)算的值也為“真”和“假”兩種,用“1”和“0”來(lái)表示。其求值規(guī)則如下:,4.2.1 邏輯運(yùn)算符,(1)與運(yùn)算& 參與運(yùn)算的兩個(gè)量都為真時(shí),結(jié)果才為真,否則為假。例如,50 & 42,由于50為真,42也為真,相與的結(jié)果也為真。 (2)或運(yùn)算| 參與運(yùn)算的兩個(gè)量只要有一個(gè)為真,結(jié)果就為真。兩個(gè)量都為假時(shí),結(jié)果為假。例如:50|58,由于50為真,相或的結(jié)果也就為真。 (3)非運(yùn)算! 參與運(yùn)算量為真時(shí),結(jié)果為假;參與運(yùn)算量為假時(shí),結(jié)果為真。例如:!(50)的結(jié)果為假。 雖然C編譯在給出邏輯運(yùn)算值時(shí),以“1”代表“真”,“0 ”代表“假”。但反過(guò)來(lái)在判斷一個(gè)量是為“真”還是為“假”時(shí),以“0”代表“假”,以非“0”的數(shù)值作為“真”。例如:由于5和3均為非“0”,因此5&3的值為“真”,即為1。又如:5|0的值為“真”,即為1。,4.2.2 邏輯表達(dá)式,邏輯表達(dá)式的一般形式為:表達(dá)式 邏輯運(yùn)算符 表達(dá)式 其中的表達(dá)式可以又是邏輯表達(dá)式,從而組成了嵌套的情形。例如:(a&b)&c根據(jù)邏輯運(yùn)算符的左結(jié)合性,上式也可寫(xiě)為:a&b&c 邏輯表達(dá)式的值是式中各種邏輯運(yùn)算的最后值,以“1”和“0”分別代表“真”和“假”。 例如,(year%4=0)&(year%100!=0)|(year%400=0)就是一個(gè)判斷一個(gè)年份是否是閏年的邏輯表達(dá)式。 在計(jì)算邏輯表達(dá)式時(shí),只有在必須執(zhí)行下一個(gè)表達(dá)式才能求解時(shí),才求解該表達(dá)式(即并不是所有的表達(dá)式都被求解)。換句話(huà)說(shuō): (1)對(duì)于邏輯”與”運(yùn)算,如果第一個(gè)操作數(shù)被判定為“假”,系統(tǒng)不再判定或求解第二操作數(shù)。 (2)對(duì)于邏輯”或”運(yùn)算,如果第一個(gè)操作數(shù)被判定為“真”,系統(tǒng)不再判定或求解第二操作數(shù)。 例如,假設(shè)n1、n2、n3、n4、x、y的值分別為1、2、3、4、1、1,則求解表達(dá)式“(x=n1n2)&(y=n3n4)”后,x的值變?yōu)椋鴜的值不變,仍等于1。,4.2.2 邏輯表達(dá)式,【例4.2】 main( ) char c=k; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf(“%d,%dn“,!x*!y,!x); printf(“%d,%dn“,x|i 運(yùn)行結(jié)果: 0,0 1,0 0,1,4.2.2 邏輯表達(dá)式,本例中!x和!y分別為0,!x*!y也為0,故其輸出值為0。由于x為非0,故!x的邏輯值為0。對(duì)x| i & j-3式,先計(jì)算j-3的值為非0,再求i & j-3的邏輯值為1,故x|i&j-3的邏輯值為 1。對(duì)ij&xy式,由于ij的值為1,而xy為0故表達(dá)式的值為1,0相與,最后為0,對(duì)i= =5&c&(j=8)式,由于i= =5為假,即值為0,該表達(dá)式由兩個(gè)與運(yùn)算組成,所以整個(gè)表達(dá)式的值為0。對(duì)于式x+y|i+j+k,由于x+y的值為非0,故整個(gè)或表達(dá)式的值為1。,4.3 if語(yǔ)句,4.3.1 if語(yǔ)句的三種形式 用if語(yǔ)句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進(jìn)行判斷,以決定執(zhí)行某個(gè)分支程序段。語(yǔ)言的if語(yǔ)句有三種基本形式。 1if語(yǔ)句 格式:if (條件表達(dá)式) 語(yǔ)句 功能:先計(jì)算條件表達(dá)式的值,如果條件表達(dá)式的值為真(非0),執(zhí)行語(yǔ)句(選擇體),否則執(zhí)行if語(yǔ)句的下一條語(yǔ)句。 例如: (1)if(x0) printf(x=%f, x); 如果x0,輸出x。 (2)if(a=b) printf(%s,a=b);如果a等于b, 輸出a=b。 說(shuō)明: (1)條件表達(dá)式必須用小括號(hào)括起,同時(shí)注意區(qū)分作為條件的表達(dá)式與作為數(shù)值的表達(dá)式。 (2)if語(yǔ)句中要選擇執(zhí)行的語(yǔ)句稱(chēng)為選擇體,選擇體從語(yǔ)法上只能是一條語(yǔ)句,如果選擇體需多條語(yǔ)句描述,必須采用復(fù)合語(yǔ)句。,4.3 if語(yǔ)句,【例4.3】輸入兩個(gè)整數(shù),輸出其中的大數(shù)。 main( ) int a,b,max; printf(“n input two numbers: “); scanf(“%d%d“, ,4.3 if語(yǔ)句,2if-else語(yǔ)句 格式:if (條件表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 功能:先計(jì)算條件表達(dá)式的值,如果條件表達(dá)式的值為真 (非0),執(zhí)行語(yǔ)句1(選擇體1),否則執(zhí)行語(yǔ)句2(選 擇體2),if語(yǔ)句執(zhí)行完后執(zhí)行if語(yǔ)句的下條語(yǔ)句。 例如: (1)如果x0,輸出x大于0,否則輸出x小于等于0。 if(x0) printf(x大于0); else printf(x小于等于0);,4.3 if語(yǔ)句,(2)如果a等于b, 輸出a等于b, 否則輸出a不等于b。 if(a= =b) printf(a等于b); else printf(“a不等于b); (3)求兩個(gè)數(shù)x、y的最大值max。 if(xy) max=x; else max=y; (4)判斷整數(shù)i的奇偶性。 if(i%2= =0) printf(偶數(shù)n); else printf(奇數(shù)n);,4.3 if語(yǔ)句,說(shuō)明: (1)if-else語(yǔ)句形式上相當(dāng)于if語(yǔ)句擴(kuò)展else分支而來(lái),else分支稱(chēng)為else子句,else子句不能單獨(dú)存在。 (2)在其它高級(jí)語(yǔ)言中特別強(qiáng)調(diào)else子句前不能有分號(hào),C語(yǔ)言中else子句前必有分號(hào)。 (3)選擇體如為多條語(yǔ)句同樣必須采用復(fù)合語(yǔ)句。 (4)if語(yǔ)句可認(rèn)為是if-else語(yǔ)句缺省else子句的特殊情況,一條if-else語(yǔ)句可用兩條單分支if語(yǔ)句實(shí)現(xiàn)。 例如,前例中三條if-else語(yǔ)句改用if語(yǔ)句實(shí)現(xiàn): if (x0) printf(x大于0); if (xy) max=x; if(x=y) max=y;,4.3 if語(yǔ)句,3if-else-if語(yǔ)句 格式:if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if(表達(dá)式3) 語(yǔ)句3; else if(表達(dá)式m) 語(yǔ)句m; else 語(yǔ)句n; 功能:依次判斷表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為真時(shí),則執(zhí)行其對(duì)應(yīng)的語(yǔ)句。然后跳到整個(gè)if語(yǔ)句之外繼續(xù)執(zhí)行程序。如果所有的表達(dá)式均為假,則執(zhí)行語(yǔ)句n。然后繼續(xù)執(zhí)行后續(xù)程序。,【例4.5】判斷輸入字符ASCII碼所在的范圍,分別給出不同的輸出。例如輸入為“g”,輸出顯示它為小寫(xiě)字符。 可以根據(jù)輸入字符的ASCII碼來(lái)判別類(lèi)型。由ASCII碼表可知ASCII值小于32的為控制字符。在“0”和“9”之間的為數(shù)字,在“A”和“Z”之間為大寫(xiě)字母,在“a”和“z”之間為小寫(xiě)字母,其余則為其它字符。 #include“stdio.h“ main( ) char c; printf(“input a character: “); c=getchar(); if(c=0 ,3在使用if語(yǔ)句中還應(yīng)注意以下問(wèn)題: (1)在三種形式的if語(yǔ)句中,在if關(guān)鍵字之后均為表達(dá)式。該表達(dá)式通常是邏輯表達(dá)式或關(guān)系表達(dá)式,但也可以是其它表達(dá)式,如賦值表達(dá)式等,甚至也可以是一個(gè)變量。例如: if(a=5) 語(yǔ)句;if(b) 語(yǔ)句;都是允許的。只要表達(dá)式的值為非0,即為“真”。如在if(a=5);中表達(dá)式的值永遠(yuǎn)為非0,所以其后的語(yǔ)句總是要執(zhí)行的,當(dāng)然這種情況在程序中不一定會(huì)出現(xiàn),但在語(yǔ)法上是合法的。 又如,有程序段: if(a=b) printf(“%d“,a); else printf(“a=0“); 本語(yǔ)句的語(yǔ)義是,把b值賦予a,如為非0則輸出該值,否則輸出“a=0”字符串。這種用法在程序中是經(jīng)常出現(xiàn)的。 (2)在if語(yǔ)句中,條件判斷表達(dá)式必須用括號(hào)括起來(lái),在語(yǔ)句之后必須加分號(hào)。,(3)在if語(yǔ)句的三種形式中,所有的語(yǔ)句應(yīng)為單個(gè)語(yǔ)句,如果要想在滿(mǎn)足條件時(shí)執(zhí)行一組(多個(gè))語(yǔ)句,則必須把這一組語(yǔ)句用括起來(lái)組成一個(gè)復(fù)合語(yǔ)句。但要注意的是在之后不能再加分號(hào)。4.3.2 if語(yǔ)句的嵌套 當(dāng)if語(yǔ)句中的執(zhí)行語(yǔ)句又是if語(yǔ)句時(shí),則構(gòu)成了if 語(yǔ)句嵌套的情形。其一般形式可表示如下: if(表達(dá)式) if語(yǔ)句; 或者為 if(表達(dá)式) if語(yǔ)句; else if語(yǔ)句;,4.3.2 if語(yǔ)句的嵌套,例如:將百分制成績(jī)轉(zhuǎn)成五級(jí)記分(A、 B、 C、 D、E)。 if (cj=90) ch=A; else if (cj=80) ch=B; else if (cj=70) ch=C; else if (cj=60) ch=D; else ch=E; 說(shuō)明: (1)在嵌套內(nèi)的if語(yǔ)句可能又是if-else型的,這將會(huì)出現(xiàn)多個(gè)if和多個(gè)else重疊的情況,這時(shí)要特別注意if和else的配對(duì)問(wèn)題,4.3.2 if語(yǔ)句的嵌套,(2)通過(guò)加花括號(hào)、加注釋來(lái)明確 else與if的配套關(guān)系。 (3)if語(yǔ)句的嵌套可用多條if、if-else語(yǔ)句等價(jià)實(shí)現(xiàn)。 如上例: if (cj=90) ch=A; if (cj=80,4.3.2 if語(yǔ)句的嵌套,【例4.6】 求 main( ) float x; float y; printf(Input x: ); scanf(%f, ,4.3.2 if語(yǔ)句的嵌套,上述if語(yǔ)句的嵌套也可以用以下if語(yǔ)句代替: if(x0) y=1; 因此,在一般情況下較少使用if語(yǔ)句的嵌套結(jié)構(gòu)。以使程序更便于閱讀理解。,4.3.3 條件運(yùn)算符和條件表達(dá)式,如果在條件語(yǔ)句中,只執(zhí)行單個(gè)的賦值語(yǔ)句時(shí),??墒褂脳l件表達(dá)式來(lái)實(shí)現(xiàn)。不但使程序簡(jiǎn)潔,也提高了運(yùn)行效率。 條件運(yùn)算符為?和:,它是一個(gè)三目運(yùn)算符,即有三個(gè)參與運(yùn)算的量。由條件運(yùn)算符組成條件表達(dá)式的一般形式為: 表達(dá)式1? 表達(dá)式2: 表達(dá)式3 其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2 的值作為條件表達(dá)式的值,否則以表達(dá)式2的值作為整個(gè)條件表達(dá)式的值。條件表達(dá)式通常用于賦值語(yǔ)句之中。,4.3.3 條件運(yùn)算符和條件表達(dá)式,例如條件語(yǔ)句: if(ab) max=a; else max=b; 可用條件表達(dá)式寫(xiě)為 max=(ab)?a:b; 執(zhí)行該語(yǔ)句的語(yǔ)義是:如ab為真,則把a(bǔ)賦予max,否則把b 賦予max。 使用條件表達(dá)式時(shí),還應(yīng)注意以下幾點(diǎn): (1)條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值符。因此max=(ab)?a:b可以去掉括號(hào)而寫(xiě)為 max=ab?a:b (2)條件運(yùn)算符?和:是一對(duì)運(yùn)算符,不能分開(kāi)單獨(dú)使用。 (3)條件運(yùn)算符的結(jié)合方向是自右至左。,4.3.3 條件運(yùn)算符和條件表達(dá)式,例如: ab?a:cd?c:d應(yīng)理解為ab?a:(cd?c:d),這也就是條件表達(dá)式嵌套的情形,即其中的表達(dá)式3又是一個(gè)條件表達(dá)式。 【例4.7】用條件表達(dá)式輸出兩個(gè)數(shù)中的大數(shù)。 main( ) int a,b,max; printf(“n input two numbers: “); scanf(“%d%d“, ,4.4 switch語(yǔ)句,switch語(yǔ)句稱(chēng)為開(kāi)關(guān)語(yǔ)句,用于多分支選擇的一種特殊情況的處理,即每個(gè)分支、每種情況通過(guò)一個(gè)表達(dá)式取不同的值(選擇常量、情況常量)來(lái)描述,相當(dāng)于PASCAL語(yǔ)言中的CASE語(yǔ)句。 格式: switch (選擇表達(dá)式) case 常量1: 語(yǔ)句1; case 常量2: 語(yǔ)句2; case 常量n: 語(yǔ)句n; default: 語(yǔ)句n+1; ,4.4 switch語(yǔ)句,功能:計(jì)算選擇表達(dá)式的值,當(dāng)表達(dá)式的值與某一 個(gè)case后面的常量相等、相匹配時(shí),就執(zhí)行此 case后面的處理語(yǔ)句。執(zhí)行完一個(gè)case后面的 語(yǔ)句后,流程控制轉(zhuǎn)移到下一個(gè)case處繼續(xù)執(zhí) 行。若所有case中的常量都不與選擇表達(dá)式的 值相匹配,就執(zhí)行default后面的語(yǔ)句。,4.4 switch語(yǔ)句,【例4.8】輸入一個(gè)數(shù)字,輸出相應(yīng)星期的英文單詞。 main( ) int a; printf(“input integer number: “); scanf(“%d“, ,4.4 switch語(yǔ)句,但是當(dāng)輸入3之后,卻執(zhí)行了case3以及以后的所有語(yǔ)句,輸出了Wednesday及以后的所有單詞。這當(dāng)然是不希望的。為什么會(huì)出現(xiàn)這種情況呢?這恰恰反應(yīng)了switch語(yǔ)句的一個(gè)特點(diǎn)。在switch語(yǔ)句中,“case 常量表達(dá)式”只相當(dāng)于一個(gè)語(yǔ)句標(biāo)號(hào),表達(dá)式的值和某標(biāo)號(hào)相等則轉(zhuǎn)向該標(biāo)號(hào)執(zhí)行,但不能在執(zhí)行完該標(biāo)號(hào)的語(yǔ)句后自動(dòng)跳出整個(gè)switch 語(yǔ)句,所以出現(xiàn)了繼續(xù)執(zhí)行所有后面case語(yǔ)句的情況。這是與前面介紹的if語(yǔ)句完全不同的,應(yīng)特別注意。為了避免上述情況,語(yǔ)言還提供了一種break語(yǔ)句,專(zhuān)用于跳出switch語(yǔ)句,break語(yǔ)句只有關(guān)鍵字break,沒(méi)有參數(shù)。修改例題的程序,在每一case語(yǔ)句之后增加break 語(yǔ)句,使每一次執(zhí)行之后均可跳出switch語(yǔ)句,從而避免輸出不應(yīng)有的結(jié)果。,4.4 switch語(yǔ)句,說(shuō)明: (1)選擇表達(dá)式可以是任何表達(dá)式,一般為整型、字符型、枚舉型表達(dá)式. (2)選擇表達(dá)式必須用小括號(hào)括起。 (3)case后可以是常量表達(dá)式,每一個(gè)case后的值必須互不相同,否則會(huì)出現(xiàn)二義性。 (4)一種情況處理完后,一般應(yīng)使程序的執(zhí)行流程跳出switch結(jié)構(gòu),終止switch語(yǔ)句的執(zhí)行,這可借助break語(yǔ)句完成。 一般使用的switch語(yǔ)句形式為: switch(選擇表達(dá)式) case 常量1: 語(yǔ)句1break; case 常量2: 語(yǔ)句2break; case 常量n: 語(yǔ)句nbreak; default: 語(yǔ)句n+1 ,4.4 switch語(yǔ)句,(5)在上述switch語(yǔ)句的一般使用形式下,case出現(xiàn)的次序不影 響執(zhí)行結(jié)果。 (6)當(dāng)多個(gè)常量代表一種情況時(shí),出現(xiàn)在前面case中的情況處 理無(wú)語(yǔ)句,這實(shí)際上也是多個(gè)case共用一組執(zhí)行語(yǔ)句。 (7)可以沒(méi)有default子句。 (8)switch語(yǔ)句描述的是多分支選擇的一種特殊情況,可用if 語(yǔ)句等價(jià)實(shí)現(xiàn),4.5 程序舉例,【例4.9】求三個(gè)數(shù)的最大值。 程序一: main( ) float x, y, z; float max; clrscr( ); printf(Please Input x, y, z: ); scanf(%f, %f, %f, ,4.5 程序舉例,程序二: m

溫馨提示

  • 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)論