版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、語言程序設(shè)計(jì)1第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)語言程序設(shè)計(jì)2第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.14.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式4.24.2邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式4.3 if4.3 if語句以及用語句以及用ifif語句構(gòu)成的分支結(jié)構(gòu)語句構(gòu)成的分支結(jié)構(gòu)4.4 switch4.4 switch語句以及用語句以及用switchswitch語句和語句和breakbreak語句語句構(gòu)成的分支結(jié)構(gòu)構(gòu)成的分支結(jié)構(gòu)4.54.5程序舉例程序舉例主要內(nèi)容:主要內(nèi)容:語言程序設(shè)計(jì)3第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.14.1關(guān)
2、系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式 4.1.1 4.1.1 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 C C語言提供以下語言提供以下6 6種關(guān)系運(yùn)算符:種關(guān)系運(yùn)算符:(1) (1) ( (大于大于) )(2)=(2)=(大于等于)(大于等于)(3)(3)(小于)(小于)(4)=(4)=(小于等于)(小于等于)(5)=(5)=(等于)(等于)(6)!=(6)!=(不等于)(不等于)語言程序設(shè)計(jì)4第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性為從關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性為從左到右。關(guān)系成立,則關(guān)系運(yùn)算的的值為左到右。關(guān)系成立,則關(guān)系運(yùn)算的的值為1 1,即,即邏輯邏
3、輯“真真”;關(guān)系不成立,則關(guān)系運(yùn)算的值為;關(guān)系不成立,則關(guān)系運(yùn)算的值為0 0,即邏輯即邏輯“假假”。例如:例如: 3535 ( (值為值為1) 1) 5!=3 5!=3 (值為(值為1 1) 5=35=3 (值為(值為0 0) aba 、=、 、=bcabcx=yz x=yz 語言程序設(shè)計(jì)6第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,但高關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,但高于賦值運(yùn)算符。于賦值運(yùn)算符。 例如:例如:x=yzx=yz等價(jià)于等價(jià)于x=(yz)x=(yz),先計(jì)算,先計(jì)算yzyb+cab+c等價(jià)于等價(jià)于a(b+c)a(b+c)。語言程序設(shè)計(jì)7第
4、第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)如果如果a a和和b b都是實(shí)型數(shù)據(jù),應(yīng)避免使用都是實(shí)型數(shù)據(jù),應(yīng)避免使用a=ba=b這樣這樣的關(guān)系表達(dá)式,因?yàn)樵趦?nèi)存中存放的實(shí)型數(shù)據(jù)是的關(guān)系表達(dá)式,因?yàn)樵趦?nèi)存中存放的實(shí)型數(shù)據(jù)是有誤差的。有誤差的。注意賦值運(yùn)算符注意賦值運(yùn)算符“= =”和關(guān)系運(yùn)算符和關(guān)系運(yùn)算符“=”的區(qū)別。的區(qū)別。語言程序設(shè)計(jì)8第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.1.2 4.1.2 關(guān)系表達(dá)式關(guān)系表達(dá)式 由關(guān)系運(yùn)算符構(gòu)成的表達(dá)式,稱關(guān)系表達(dá)式。由關(guān)系運(yùn)算符構(gòu)成的表達(dá)式,稱關(guān)系表達(dá)式。關(guān)系運(yùn)算符兩邊的運(yùn)算對象可以是關(guān)系運(yùn)算符兩邊的運(yùn)算對象可以是C C語言中任意合語言中任
5、意合法的表達(dá)式。法的表達(dá)式。 關(guān)系表達(dá)式的值為關(guān)系表達(dá)式的值為“邏輯值邏輯值”,即,即“真真”和和“假假”,“真真”用整數(shù)用整數(shù)1 1來表示,來表示,“假假”用整數(shù)用整數(shù)0 0來表來表示。示。語言程序設(shè)計(jì)9第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)以下都是合法的關(guān)系表達(dá)式:以下都是合法的關(guān)系表達(dá)式: a+bc+da+bc+d (a=3)(b=5) (a=3)(b=5) x!=y x!=y ac=c ac=c a+1=b a+1=b A+32=B A+32=B【例例4.14.1】關(guān)系運(yùn)算符和關(guān)系表達(dá)式舉例。關(guān)系運(yùn)算符和關(guān)系表達(dá)式舉例。 #include #include void main
6、() void main() int a=3,b=5,c=23; int a=3,b=5,c=23; char ch=A; char ch=A; printf(%d,%dn,ab,ab,ab+c); printf(%d,%dn,a!=ch,c=a+b); printf(%d,%dn,a!=ch,c=a+b); printf(%d,%dn,ac,ch+32=a); printf(%d,%dn,ac,ch+32=a); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:0,10,11,01,00,10,1語言程序設(shè)計(jì)10第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.24.2邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式 4
7、.2.1 4.2.1 邏輯運(yùn)算符邏輯運(yùn)算符 在在C C語言中,選擇條件不僅可以由關(guān)系表達(dá)語言中,選擇條件不僅可以由關(guān)系表達(dá)式組成,還可以由邏輯表達(dá)式組成,進(jìn)行邏輯判式組成,還可以由邏輯表達(dá)式組成,進(jìn)行邏輯判斷時,數(shù)據(jù)的值為非斷時,數(shù)據(jù)的值為非0 0,即為邏輯,即為邏輯“真真”,數(shù)據(jù),數(shù)據(jù)的值為的值為0 0,即為邏輯,即為邏輯“假假”。邏輯運(yùn)算與關(guān)系運(yùn)。邏輯運(yùn)算與關(guān)系運(yùn)算的結(jié)果都是算的結(jié)果都是“邏輯值邏輯值”,即,即“真真”或或“假,分假,分別用整數(shù)別用整數(shù)1 1和和0 0表示。表示。語言程序設(shè)計(jì)11第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì) C C語言提供了語言提供了3 3種邏輯運(yùn)算符:
8、種邏輯運(yùn)算符: (1) (1) !(邏輯(邏輯“非非”) (2)&(2)&(邏輯(邏輯“與與”) (3)|(3)| (邏輯(邏輯“或或”) 邏輯運(yùn)算符的結(jié)合性為從左到右。邏輯運(yùn)算符的結(jié)合性為從左到右。 當(dāng)參與邏輯當(dāng)參與邏輯“與與”(&)運(yùn)算的兩個操作)運(yùn)算的兩個操作數(shù)都為數(shù)都為“真真”,結(jié)果才為,結(jié)果才為“真真”。 當(dāng)參與邏輯當(dāng)參與邏輯“或或”(|)運(yùn)算的兩個操作)運(yùn)算的兩個操作數(shù)中只要有一個為數(shù)中只要有一個為“真真”,結(jié)果就為,結(jié)果就為“真真”。語言程序設(shè)計(jì)12第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)說明:說明: 3 3種邏輯運(yùn)算符的優(yōu)先級從高到低是:種邏輯運(yùn)
9、算符的優(yōu)先級從高到低是:! !、&、|。 邏輯運(yùn)算符與關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、賦值邏輯運(yùn)算符與關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、賦值運(yùn)算符之間的優(yōu)先級從高到低是:?。ㄟ壿嬤\(yùn)算符之間的優(yōu)先級從高到低是:!(邏輯“非非”)、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算)、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符(符(&和和|)、賦值運(yùn)算符。)、賦值運(yùn)算符。例如:例如:x=a+bc&!c+dx=a+bc&!c+d等價(jià)于:等價(jià)于:x=(a+b)c&(!c)+d)x=(a+b)c&(!c)+d)語言程序設(shè)計(jì)13第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)關(guān)于邏輯運(yùn)算符關(guān)于邏輯運(yùn)算
10、符“!”例如:例如:!(ab)!(ab)/ /* *等價(jià)于等價(jià)于a=bab)&(cb)&(c=d) / /* *等價(jià)于等價(jià)于(ad)(ad)* */ /在在C C語言中,由語言中,由“&”或或“|”構(gòu)成的邏輯表達(dá)式構(gòu)成的邏輯表達(dá)式,在某些情況下會產(chǎn)生,在某些情況下會產(chǎn)生“短路短路”。例如:例如: int a=0,b=1;int a=0,b=1; a+&b+; a+&b+; printf(%d,%dn,a,b); printf(%d,%dn,a,b);輸出:輸出:1,1 1,1 再如:再如: int a=0,b=1;int a=0,b=1; a+|b+;
11、a+|b+; printf(%d,%dn,a,b); printf(%d,%dn,a,b);輸出:輸出:1,21,2語言程序設(shè)計(jì)14第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.2.2 4.2.2 邏輯表達(dá)式邏輯表達(dá)式 由邏輯運(yùn)算符構(gòu)成的表達(dá)式,稱為邏輯由邏輯運(yùn)算符構(gòu)成的表達(dá)式,稱為邏輯表達(dá)式。邏輯運(yùn)算符兩邊的運(yùn)算對象可以是表達(dá)式。邏輯運(yùn)算符兩邊的運(yùn)算對象可以是C C語言中任意合法的表達(dá)式。語言中任意合法的表達(dá)式。 邏輯表達(dá)式的值為邏輯表達(dá)式的值為“邏輯值邏輯值”,即,即“真真”和和“假假”,“真真”用整數(shù)用整數(shù)1 1來表示,來表示,“假假”用整數(shù)用整數(shù)0 0來表示。來表示。語言程序設(shè)計(jì)
12、15第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)以下都是合法的邏輯表達(dá)式:以下都是合法的邏輯表達(dá)式: a+3b-5&!ca+3b-5&!c a|b&c a|b&c x+y&xy x+y&xy !a !a【例例4.24.2】邏輯運(yùn)算符和邏輯表達(dá)式舉例邏輯運(yùn)算符和邏輯表達(dá)式舉例 #include #include void main() void main() int a=3,b=5,c=23; int a=3,b=5,c=23; int x=9,y=10; int x=9,y=10; printf(%d,%dn, a+3b-5&!c,
13、a|b&c); printf(%d,%dn, a+3b-5&!c, a|b&c); printf(%d,%dn, x+y&xy, !a); printf(%d,%dn, x+y&xb)if(ab) a+; a+;/ /* *ifif子句子句* */ /b+;b+;再如:再如:if(ab)if(ab) a+; a+; b+; b+;/ /* *此復(fù)合語句是此復(fù)合語句是ifif子句子句* */ / c+; c+;語言程序設(shè)計(jì)20第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)說明:說明:ifif后面一對圓括號中的表達(dá)式可以是任意后面一對圓括號中的表達(dá)式可以是
14、任意合法的表達(dá)式,如:合法的表達(dá)式,如:關(guān)系表達(dá)式,如關(guān)系表達(dá)式,如xyxy邏輯表達(dá)式,如邏輯表達(dá)式,如ab&bc ab&bc 算術(shù)表達(dá)式,如算術(shù)表達(dá)式,如a+ba+b賦值表達(dá)式,如賦值表達(dá)式,如x=y x=y 變量,如變量,如a a常量,如常量,如-5-5自增(自增(+)、自減()、自減(-)也可以出現(xiàn)在條件)也可以出現(xiàn)在條件表達(dá)式里,如表達(dá)式里,如x+yx+y語言程序設(shè)計(jì)21第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)例如:例如:if(x=y)if(x=y) printf(%dn,x+); printf(%dn,x+);printf(%dn, +y);printf(%d
15、n, +y);再如:再如:if(a+b)if(a+b) printf(%dn,a/b); printf(%dn,a/b);printf(%dn, a%b);printf(%dn, a%b);語言程序設(shè)計(jì)22第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)使用使用ifif語句要注意以下幾個方面:語句要注意以下幾個方面:(1)if(1)if是是C C語言的關(guān)鍵字,必須小寫,而且語言的關(guān)鍵字,必須小寫,而且ifif后面的后面的一對圓括號不能省略。一對圓括號不能省略。(2)(2)不要輕易在不要輕易在ifif后面的一對圓括號后面加分號,后面的一對圓括號后面加分號,否則會出現(xiàn)錯誤或改變了否則會出現(xiàn)錯誤或改
16、變了ifif的子句。的子句。例如:例如:if(ab)if(ab); a+;a+;b+;b+;語言程序設(shè)計(jì)23第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)2.2.雙分支雙分支ifif語句。語句格式如下:語句。語句格式如下: if(if(表達(dá)式表達(dá)式) ) 語句語句1 1 else else 語句語句2 2語句執(zhí)行過程如下:語句執(zhí)行過程如下:首先計(jì)算緊跟在首先計(jì)算緊跟在ifif后面一對圓括號中的表達(dá)式的值。后面一對圓括號中的表達(dá)式的值。(1)(1)如果表達(dá)式的值為如果表達(dá)式的值為“真真”,則執(zhí)行其后的,則執(zhí)行其后的ifif子句,子句,即其下面的最近的一條語句或其下面最近的復(fù)合語句即其下面的最近
17、的一條語句或其下面最近的復(fù)合語句,然后再去執(zhí)行,然后再去執(zhí)行ifif語句后面的其他語句。語句后面的其他語句。(2)(2)如果表達(dá)式的值為如果表達(dá)式的值為“假假”,則跳過,則跳過ifif子句,去執(zhí)行子句,去執(zhí)行elseelse子句,然后再去執(zhí)行子句,然后再去執(zhí)行ifif語句后面的其他語句。語句后面的其他語句。語言程序設(shè)計(jì)24第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)其執(zhí)行過程可用下面流程圖來表示:其執(zhí)行過程可用下面流程圖來表示:圖圖4.2 4.2 雙分支選擇結(jié)構(gòu)的執(zhí)行過程雙分支選擇結(jié)構(gòu)的執(zhí)行過程語言程序設(shè)計(jì)25第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)例如:例如:if(ab)if(a
18、b) printf(%dn,a); printf(%dn,a); / /* *ifif子句子句* */ / else printf(%dn,b);else printf(%dn,b);/ /* *elseelse子句子句* */ /使用使用ififelse else 語句應(yīng)注意以下幾個方面:語句應(yīng)注意以下幾個方面:(1)if(1)if和和elseelse都是都是C C語言的關(guān)鍵字,必須小寫。語言的關(guān)鍵字,必須小寫。(2)else(2)else不是一條獨(dú)立的語句,不能單獨(dú)出現(xiàn),不是一條獨(dú)立的語句,不能單獨(dú)出現(xiàn),必須與必須與ifif配對使用,配對的原則是:配對使用,配對的原則是:elseelse與
19、其上與其上面最近的且沒使用的面最近的且沒使用的ifif配對。配對。 語言程序設(shè)計(jì)26第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì) #include#include void main() void main() int a=2,b=-1,c=2; int a=2,b=-1,c=2; if(ab) if(ab) if(b0) c=0; if(b0) c=0; else c+=1; else c+=1; printf(c=%d,c); printf(c=%d,c); 【例例4.34.3】分析下面程序分析下面程序 運(yùn)行結(jié)果:運(yùn)行結(jié)果:c=2c=2語言程序設(shè)計(jì)27第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分
20、支結(jié)構(gòu)程序設(shè)計(jì)在在ifif和和elseelse之間不能出現(xiàn)第二條語句或第二條復(fù)之間不能出現(xiàn)第二條語句或第二條復(fù)合語句,否則會出現(xiàn)錯誤提示。合語句,否則會出現(xiàn)錯誤提示。例如:例如:if(x=y)if(x=y) x+; x+; printf(%dn,x); printf(%dn,x);else printf(%dn,xelse printf(%dn,x* *y);y);改寫成:改寫成:if(x=y)if(x=y)x+;x+; printf(%dn,x); printf(%dn,x);else else printf(%dn,xprintf(%dn,x* *y);y);語言程序設(shè)計(jì)28第第4 4章章
21、 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)#include#include main( ) main( ) int a,b,c,max; int a,b,c,max; printf(Enter a,b,c printf(Enter a,b,c:n);n); scanf(%d%d%d,&a,&b,&c); scanf(%d%d%d,&a,&b,&c); max=a; max=a; if(bmax) if(bmax) max=b; max=b; if(cmax) if(cmax) max=c; max=c; printf(max=%dn,max); prin
22、tf(max=%dn,max); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:Enter a,b,cEnter a,b,c:3 5 63 5 6 max=6max=6【例例4.44.4】輸入三個整數(shù)輸入三個整數(shù)a a、b b、c c,要求輸出最大的數(shù)。,要求輸出最大的數(shù)。語言程序設(shè)計(jì)29第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.3.2 4.3.2 嵌套的嵌套的ifif語句語句 1.1.在在ifif語句中嵌套不含語句中嵌套不含elseelse子句的子句的ifif語句語句語句格式如下:語句格式如下: if( if(表達(dá)式表達(dá)式1)1) if( if(表達(dá)式表達(dá)式2) 2) 語句語句1 1; / /* *ifif
23、子句子句* */ / else else 語句語句2 2;注意:上述語句格式中的一對花括號注意:上述語句格式中的一對花括號不能省不能省略,如果省略了一對花括號略,如果省略了一對花括號,則則elseelse就會與就會與第二個第二個ifif配對,形成了如下形式:配對,形成了如下形式:語言程序設(shè)計(jì)30第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)if(if(表達(dá)式表達(dá)式1)1) if( if(表達(dá)式表達(dá)式2) 2) 語句語句1 1; else else 語句語句2 2;等價(jià)于:等價(jià)于:if(if(表達(dá)式表達(dá)式1)1) if( if(表達(dá)式表達(dá)式2) 2) 語句語句1 1; else else 語句
24、語句2 2; 例如:例如: if(a)if(a) if(b) b+; if(b) b+; else a+; else a+; 假設(shè)假設(shè)a a和和b b的初值都為的初值都為0 0,上述程序段執(zhí)行后:,上述程序段執(zhí)行后:a=1a=1,b=0b=0。如果去掉上述程序段中的一對花括號。如果去掉上述程序段中的一對花括號,則上述程序段執(zhí)行后:則上述程序段執(zhí)行后:a=0a=0,b=0b=0。 語言程序設(shè)計(jì)31第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)2.2.在在ifif語句中嵌套含有語句中嵌套含有elseelse子句的子句的ifif語句語句 語句格式如下:語句格式如下: if(if(表達(dá)式表達(dá)式1)1
25、) if( if(表達(dá)式表達(dá)式2) 2) 語句語句1 1; else else 語句語句2 2; else else 語句語句3 3; 例如:例如: int a=2,b=4,c=0;int a=2,b=4,c=0; if(a) if(a) if(!b) c=a1; if(!b) c=a1; else c=b1; else c+=1; else c+=1;程序運(yùn)行后,程序運(yùn)行后,c c的值等于的值等于2 2。 語言程序設(shè)計(jì)32第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)3.3.在在elseelse子句中嵌套不含子句中嵌套不含elseelse子句的子句的ifif語句語句語句格式如下:語句格式如
26、下:if(if(表達(dá)式表達(dá)式1) 1) 語句語句1 1; else else if( if(表達(dá)式表達(dá)式2) 2) 語句語句2 2;或?qū)懗桑夯驅(qū)懗桑篿f(if(表達(dá)式表達(dá)式1) 1) 語句語句1 1;else if(else if(表達(dá)式表達(dá)式2) 2) 語句語句2 2;語言程序設(shè)計(jì)33第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)例如:例如: int a=6,b=9,c;int a=6,b=9,c; if(a=b) if(a=b) c=ab; c=ab; else if(ab) c=a|b; else if(ab) c=a|b;程序運(yùn)行后,程序運(yùn)行后,c c的值等于的值等于1515。4.4
27、.在在elseelse子句中嵌套含有子句中嵌套含有elseelse子句的子句的ifif語句語句 語句格式如下:語句格式如下: if( if(表達(dá)式表達(dá)式1) 1) 語句語句1 1; else else if( if(表達(dá)式表達(dá)式2) 2) 語句語句2 2; else else 語句語句3 3; 語言程序設(shè)計(jì)34第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)【例例4.54.5】根據(jù)輸入的學(xué)生成績輸出相應(yīng)的等級,大根據(jù)輸入的學(xué)生成績輸出相應(yīng)的等級,大于或等于于或等于9090分以上的等級為分以上的等級為A A,大于或等于,大于或等于8080分并且分并且小于小于9090分的等級為分的等級為B B,以
28、此類推,每,以此類推,每1010分為一個等級,分為一個等級,6060分以下的等級為分以下的等級為E E。 #include#includevoid main()void main() int score; int score; printf(Input score:); printf(Input score:); scanf(%d,&score); scanf(%d,&score); if(score=90) if(score=90) printf(The %d is belong to %cn,score,A); printf(The %d is belong to %cn,
29、score,A); else if(score=80) else if(score=80) printf(The %d is belong to %cn,score,B); printf(The %d is belong to %cn,score,B); else if(score=70) else if(score=70) printf(The %d is belong to %cn,score,C); printf(The %d is belong to %cn,score,C); else if(score=60) else if(score=60) printf(The %d is b
30、elong to %cn,score,D); printf(The %d is belong to %cn,score,D); else printf(The %d is belong to %cn,score,E); else printf(The %d is belong to %cn,score,E); 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:Input score:85Input score:85 The 85 is belong to BThe 85 is belong to BInput score:56Input score:56 The 56 is belong to E The 56 i
31、s belong to E 語言程序設(shè)計(jì)35第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)上述程序的執(zhí)行過程可用下面流程圖來表示:上述程序的執(zhí)行過程可用下面流程圖來表示:語言程序設(shè)計(jì)36第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.3.3 4.3.3 條件表達(dá)式構(gòu)成的分支結(jié)構(gòu)條件表達(dá)式構(gòu)成的分支結(jié)構(gòu) 條件運(yùn)算符是由條件運(yùn)算符是由“? ?”和和“:”組成的,它是一個組成的,它是一個三目運(yùn)算符,即要求有三個運(yùn)算對象。三目運(yùn)算符,即要求有三個運(yùn)算對象。 由條件運(yùn)算符構(gòu)成的條件表達(dá)式的一般形式為:由條件運(yùn)算符構(gòu)成的條件表達(dá)式的一般形式為: 表達(dá)式表達(dá)式1 1?表達(dá)式?表達(dá)式2 2:表達(dá)式:表達(dá)
32、式3 3 執(zhí)行過程為:如果表達(dá)式執(zhí)行過程為:如果表達(dá)式1 1的值為真,則以表達(dá)的值為真,則以表達(dá)式式2 2 的值作為條件表達(dá)式的值,否則以表達(dá)式的值作為條件表達(dá)式的值,否則以表達(dá)式3 3的的值作為整個條件表達(dá)式的值。值作為整個條件表達(dá)式的值。 語言程序設(shè)計(jì)37第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)條件表達(dá)式通常用于賦值語句之中。條件表達(dá)式通常用于賦值語句之中。例如條件語句:例如條件語句: if(ab) max=a;if(ab) max=a; else max=b; else max=b;可用條件表達(dá)式寫為可用條件表達(dá)式寫為 max=(ab)?a:b;max=(ab)?a:b;使用條件
33、表達(dá)式時,還應(yīng)注意以下幾點(diǎn):使用條件表達(dá)式時,還應(yīng)注意以下幾點(diǎn):條件運(yùn)算符的運(yùn)算優(yōu)先級低于關(guān)系運(yùn)算符和條件運(yùn)算符的運(yùn)算優(yōu)先級低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值符。算術(shù)運(yùn)算符,但高于賦值符。 語言程序設(shè)計(jì)38第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)條件運(yùn)算符條件運(yùn)算符? ?和:是一對運(yùn)算符,不能分開單和:是一對運(yùn)算符,不能分開單獨(dú)使用。獨(dú)使用。條件運(yùn)算符的結(jié)合方向是自右至左。條件運(yùn)算符的結(jié)合方向是自右至左。 例如:例如:ab?a:cd?c:dab?a:cd?c:d應(yīng)理解為應(yīng)理解為ab?a:(cd?c:d)ab?a:(cd?c:d)例如例如: int a=6,b=3,c=9,d=7,t
34、1,t2;int a=6,b=3,c=9,d=7,t1,t2; t1= ab?a:(cd?c:d); t1= ab?a:(cd?c:d); t2=ab?(ac?d:c):d; t2=ab?(ac?d:c):d; printf(t1=%dnt2=%dn,t1,t2); printf(t1=%dnt2=%dn,t1,t2);程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:t1=6t1=6t2=9t2=9語言程序設(shè)計(jì)39第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.4 switch4.4 switch語句以及用語句以及用switchswitch語句和語句和breakbreak語語句構(gòu)成的分支結(jié)構(gòu)句構(gòu)成的分支結(jié)構(gòu)4
35、.4.1 switch4.4.1 switch語句及用語句及用switchswitch語句構(gòu)成的分支結(jié)構(gòu)語句構(gòu)成的分支結(jié)構(gòu)1.switch1.switch語句的格式語句的格式 switch(switch(表達(dá)式表達(dá)式) ) case case 常量表達(dá)式常量表達(dá)式1 1:語句組:語句組1 1或空;或空; case case 常量表達(dá)式常量表達(dá)式2 2:語句組:語句組2 2或空;或空;case case 常量表達(dá)式常量表達(dá)式n n:語句組:語句組n n或空;或空;defaultdefault:缺省語句組;:缺省語句組; 語言程序設(shè)計(jì)40第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)在使用在使用
36、switchswitch語句時,應(yīng)注意以下幾點(diǎn):語句時,應(yīng)注意以下幾點(diǎn): switchswitch后面的表達(dá)式可以是整型常量或變量、字后面的表達(dá)式可以是整型常量或變量、字符常量或變量、關(guān)系表達(dá)式、邏輯表達(dá)式、整型算符常量或變量、關(guān)系表達(dá)式、邏輯表達(dá)式、整型算術(shù)表達(dá)式等。術(shù)表達(dá)式等。casecase后面的常量表達(dá)式可以為任何整型數(shù)據(jù)或字后面的常量表達(dá)式可以為任何整型數(shù)據(jù)或字符型數(shù)據(jù)但不能是變量。符型數(shù)據(jù)但不能是變量。每一個每一個casecase的常量表達(dá)式的值必須互不相同,否的常量表達(dá)式的值必須互不相同,否則就會出現(xiàn)互相矛盾的現(xiàn)象。則就會出現(xiàn)互相矛盾的現(xiàn)象。 每個每個casecase或或defa
37、ultdefault后的語句可以是語句組,但后的語句可以是語句組,但不需要使用不需要使用“ ”和和“ ”括起來。括起來。語言程序設(shè)計(jì)41第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)多個多個casecase可以共用同一組執(zhí)行語句??梢怨灿猛唤M執(zhí)行語句。關(guān)鍵字關(guān)鍵字casecase和后面的常量表達(dá)式之間一定要有和后面的常量表達(dá)式之間一定要有空格??崭?。 defaultdefault語句可以缺省也可以放在花括號內(nèi)的語句可以缺省也可以放在花括號內(nèi)的任意位置(不一定放在最后),如果缺省,而任意位置(不一定放在最后),如果缺省,而且所有且所有casecase后面的常量表達(dá)式的值與后面的常量表達(dá)式的值
38、與switchswitch后后面的表達(dá)式的值不等,則什么也不執(zhí)行,直接面的表達(dá)式的值不等,則什么也不執(zhí)行,直接退出退出switchswitch語句。語句。switchswitch結(jié)構(gòu)也可以嵌套,即在一個結(jié)構(gòu)也可以嵌套,即在一個switchswitch語語句中嵌套另一個句中嵌套另一個switchswitch語句。語句。語言程序設(shè)計(jì)42第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)(1)(1)首先計(jì)算首先計(jì)算switchswitch后面的一對小括號中的表達(dá)后面的一對小括號中的表達(dá)式的值。式的值。(2)(2)在在switchswitch語句體內(nèi)尋找與其相匹配的常量表語句體內(nèi)尋找與其相匹配的常量表達(dá)
39、式(值),如果找到了,則開始執(zhí)行其后面的達(dá)式(值),如果找到了,則開始執(zhí)行其后面的語句組,包括執(zhí)行其后的所有語句組,包括執(zhí)行其后的所有casecase和和defaultdefault中中的語句組,直到的語句組,直到switchswitch語句結(jié)束;如果沒有找到,語句結(jié)束;如果沒有找到,需要分兩種情況,一是有需要分兩種情況,一是有defaultdefault,則開始執(zhí)行,則開始執(zhí)行defaultdefault后面的語句,包括執(zhí)行后面的語句,包括執(zhí)行defaultdefault后面所有后面所有casecase中的語句組;二是沒有中的語句組;二是沒有defaultdefault,則跳過,則跳過swi
40、tchswitch語句體,去執(zhí)行語句體,去執(zhí)行switchswitch語句之后的其他語語句之后的其他語句。句。2.switch2.switch語句執(zhí)行過程語句執(zhí)行過程語言程序設(shè)計(jì)43第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)【例例4.74.7】用用switchswitch語句改寫例語句改寫例4.54.5#include#includevoid main()void main() int score; int score; printf(Input score:); printf(Input score:); scanf(%d,&score); scanf(%d,&scor
41、e); switch(score/10) switch(score/10) case 10: case 10: case 9: printf(The %d is belong to %cn, case 9: printf(The %d is belong to %cn, score,A); score,A); case 8: printf(The %d is belong to %cn, case 8: printf(The %d is belong to %cn, score,B); score,B); case 7: printf(The %d is belong to %cn, case
42、 7: printf(The %d is belong to %cn, score,C); score,C); case 6: printf(The %d is belong to %cn, case 6: printf(The %d is belong to %cn, score,D); score,D); default: printf(The %d is belong to %cn, default: printf(The %d is belong to %cn, score,E); score,E); 程序執(zhí)行結(jié)果為:程序執(zhí)行結(jié)果為:Input score:85Input score:
43、85 The 85 is belong to BThe 85 is belong to BThe 85 is belong to CThe 85 is belong to CThe 85 is belong to DThe 85 is belong to DThe 85 is belong to EThe 85 is belong to E語言程序設(shè)計(jì)44第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.4.2 4.4.2 在在switchswitch語句體中使用語句體中使用breakbreak語句語句breakbreak語句的作用是:跳出本層的語句的作用是:跳出本層的switchswitc
44、h語句。語句。【例例4.84.8】用用switchswitch語句和語句和breakbreak語句聯(lián)合改寫例語句聯(lián)合改寫例4.74.7#include#includevoid main()void main() int score; int score; printf(Input score:); printf(Input score:); scanf(%d,&score); scanf(%d,&score); switch(score/10) switch(score/10) case 10: case 10: case 9: printf(The %d is belong
45、to %cn, case 9: printf(The %d is belong to %cn, score,A);break; score,A);break; case 8: printf(The %d is belong to %cn, case 8: printf(The %d is belong to %cn, score,B); break; score,B); break; case 7: printf(The %d is belong to %cn, case 7: printf(The %d is belong to %cn, score,C); break; score,C);
46、 break; case 6: printf(The %d is belong to %cn, case 6: printf(The %d is belong to %cn, score,D); break; score,D); break; default: printf(The %d is belong to %cn, default: printf(The %d is belong to %cn, score,E); score,E); 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:Input score:85Input score:85 The 85 is belong to BThe 85 is be
47、long to BInput score:56Input score:56 The 56 is belong to EThe 56 is belong to E語言程序設(shè)計(jì)45第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)4.54.5程序舉例程序舉例【例例4.94.9】從鍵盤輸入兩個整數(shù),要求由小到大輸出從鍵盤輸入兩個整數(shù),要求由小到大輸出#include#includevoid main()void main() int a,b,t, int a,b,t,* *pa=&a,pa=&a,* *pb=&b;pb=&b;printf(Input a,b:);pri
48、ntf(Input a,b:);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);if(ab)if(ab)t=t=* *pa;pa;* *pa=pa=* *pb;pb;* *pb=t;pb=t;printfprintf(“na=%d,b=%dnna=%d,b=%dn”, ,* *pa,pa,* *pbpb);); 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:Input a,b:5,3Input a,b:5,3 a=3,b=5 a=3,b=5 語言程序設(shè)計(jì)46第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)【例例4.104.10】從鍵盤輸入一個整數(shù),判斷
49、其是奇數(shù)還從鍵盤輸入一個整數(shù),判斷其是奇數(shù)還是偶數(shù)是偶數(shù)#include#includevoid main()void main() int x,y; int x,y; printf(Input x:); printf(Input x:); scanf(%d,&x); scanf(%d,&x); if(x%2=0) if(x%2=0) printf(%d is printf(%d is 偶數(shù)偶數(shù)n,x);n,x); else printf(%d is else printf(%d is 奇數(shù)奇數(shù)n,x);n,x); 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:Input x:5Input x:5 5 is 5 is 奇數(shù)奇數(shù)語言程序設(shè)計(jì)47第第4 4章章 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序設(shè)計(jì)【例例4.114.11】分析下面的程序分析下面的程序#includevoid main() int a=2,b=-1,c=2; if(a+b) if(b0) c=0; else c+=1; printf(a=%d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 柳州職業(yè)技術(shù)學(xué)院《動畫劇本與分鏡設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西中醫(yī)藥大學(xué)《畫法幾何與土建制圖》2023-2024學(xué)年第一學(xué)期期末試卷
- 新蘇教版一年級下冊數(shù)學(xué)第1單元第1課時《9加幾》教案
- 華僑大學(xué)《思想道德修養(yǎng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北科技職業(yè)學(xué)院《Web應(yīng)用與開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 河南中醫(yī)藥大學(xué)《音樂基礎(chǔ)理論2》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶輕工職業(yè)學(xué)院《辦公空間設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 駐馬店職業(yè)技術(shù)學(xué)院《馬克思主義中國化》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江萬里學(xué)院《金融風(fēng)險(xiǎn)分析師(FRM)專題(雙語)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江工貿(mào)職業(yè)技術(shù)學(xué)院《證券投資常識》2023-2024學(xué)年第一學(xué)期期末試卷
- 教育綜合體項(xiàng)目策劃書
- 軟件開發(fā)項(xiàng)目服務(wù)方案
- 2024版質(zhì)量管理培訓(xùn)
- 2024年廣東省公務(wù)員錄用考試《行測》真題及答案解析
- 2024至2030年中國液體罐式集裝箱數(shù)據(jù)監(jiān)測研究報(bào)告
- 四川省2024年中考數(shù)學(xué)試卷十七套合卷【附答案】
- 家用電子產(chǎn)品維修工(中級)職業(yè)技能鑒定考試題庫(含答案)
- 無脊椎動物課件-2024-2025學(xué)年人教版生物七年級上冊
- 2024年銀發(fā)健康經(jīng)濟(jì)趨勢與展望報(bào)告:新老人、新需求、新生態(tài)-AgeClub
- 2024年江西省“振興杯”家務(wù)服務(wù)員競賽考試題庫(含答案)
- 吉林省2024年中考物理試題(含答案)
評論
0/150
提交評論