版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第4章 選擇程序設(shè)計,4.1 關(guān)系運(yùn)算符于關(guān)系表達(dá)式,4.2 邏輯運(yùn)算符于邏輯表達(dá)式,4.4 switch語句,返回,4.3 if語句,C語言程序設(shè)計教程,活著一天,就是有福氣,就該珍惜。當(dāng)我哭泣我沒有鞋子穿的時候,我發(fā)現(xiàn)有人卻沒有腳。,C語言用三種語句控制程序的執(zhí)行流程順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 這一章主要講選擇結(jié)構(gòu)。例如計算分段函數(shù),時,須先判斷x是大于還是小于0的。這時就需要選擇語句來判斷。,下一頁,第4章 選擇程序設(shè)計,4.1 關(guān)系運(yùn)算與關(guān)系表達(dá)式,關(guān)系運(yùn)算就是比較運(yùn)算,即將兩個數(shù)據(jù)進(jìn)行比較,判定兩個數(shù)據(jù)是否符合給定的關(guān)系。 a b a = = b a != b,下一頁,第4章 選
2、擇程序設(shè)計,4.1.1 關(guān)系運(yùn)算符( C語言有6種), 大于 = 大于等于 = 等于) != 不等于,六個關(guān)系運(yùn)算符都是雙元運(yùn)算符。 關(guān)系操作數(shù)可以是:數(shù)值類型數(shù)據(jù) 字符型數(shù)據(jù),關(guān)系運(yùn)算的值,關(guān)系成立: 1 (表示邏輯真); 關(guān)系不成立: 0 (表示邏輯假)。,下一頁,第4章 選擇程序設(shè)計,5 3 值: 1 5 = 3 值:0 5 = 3 值:0 5 != 3 值:1,例如,4.1.2 關(guān)系表達(dá)式,1關(guān)系表達(dá)式的構(gòu)成 關(guān)系運(yùn)算符將兩個表達(dá)式連接起來,構(gòu)成關(guān)系表達(dá)式。,下一頁,第4章 選擇程序設(shè)計,a + b b + c 比較兩個算術(shù)表達(dá)式的值 a = 2 * b 比較變量 和算術(shù)表達(dá)式的值 a
3、 b 比較兩個字符的ASCII碼值,2. 關(guān)系運(yùn)算符的優(yōu)先級,例如,1) 和 = 為同一級, = 和 != 為同一級。前者的優(yōu)先級高于后者。 2)關(guān)系運(yùn)算符優(yōu)先級低于算術(shù)運(yùn)算符。,3. 關(guān)系運(yùn)算符的結(jié)合律,C語言規(guī)定關(guān)系表達(dá)式采取左結(jié)合律。表達(dá)式中出現(xiàn)優(yōu)先級別為同一級別的運(yùn)算符時,則按從左到右結(jié)合方向處理。,第4章 選擇程序設(shè)計,a+b b+c 等效于 (a+b)(b+c)。 (2+a)=(b-a) 等效于2+a = b-a。,例如,int a=2,b=3,c=1; abb,值是0 , 再計算 033 ,值是1 , 再計算 12,值為 1,例如,返回,4.2 邏輯運(yùn)算符和邏輯表達(dá)式,4.2.1
4、 邏輯運(yùn)算符 C語言沒有邏輯類型數(shù)據(jù),邏輯運(yùn)算根據(jù)數(shù)據(jù)是否為0進(jìn)行判斷: 數(shù)據(jù)為非0:邏輯真, 數(shù)據(jù)為0: 邏輯假; 邏輯運(yùn)算值的表示: 邏輯真,值為1, 邏輯假,值為0。,下一頁,第4章 選擇程序設(shè)計,1邏輯非 !,邏輯非是一元運(yùn)算符。 操作數(shù)值為0,邏輯非運(yùn)算的結(jié)果為1(邏輯真); 當(dāng)操作數(shù)值為非0時,邏輯非運(yùn)算的結(jié)果為0。,下一頁,第4章 選擇程序設(shè)計,int a=5,b=3; !a 結(jié)果:0 !(a b) 結(jié)果:1。因為a b 的值為 0,例如,下一頁,第4章 選擇程序設(shè)計,2邏輯與 a 否則,計算:y=2 * x; 需要根據(jù)x的值進(jìn)行流程選擇(分支)。,下一頁,第4章 選擇程序設(shè)計,
5、4.3.1單分支選擇語句,執(zhí)行單分支語句時,首先先判斷表達(dá)式的值若為非0則執(zhí)行下面的語句若為0則跳過該語句。,下一頁,第4章 選擇程序設(shè)計,單分支選擇語句if的形式為:if (表達(dá)式) 語句,main() float x , y; scanf(“%f ”, ,例如,4.3.2雙分支選擇語句,執(zhí)行過程中首先先判斷表達(dá)式的值若為非0則執(zhí)行語句1。若為0則執(zhí)行語句2,下一頁,第4章 選擇程序設(shè)計,例如,main() float x , y; scanf(“%f ”, ,輸入兩個數(shù), 比較其大小, 將較大的數(shù)輸出。,流程分析: (1) 輸入兩個數(shù)據(jù)a,b ; (2) 如果ab 則輸出a ;否則,輸出b
6、。 #include main( ) float a, b; scanf(“%f, %f”, ,下一頁,第4章 選擇程序設(shè)計,例如,4.3.3多分支選擇語句,執(zhí)行時先判斷表達(dá)式1的值非0就執(zhí)行下面的語句為0就執(zhí)行下一個判斷一直這樣做下去直到得出最后結(jié)果。,下一頁,第4章 選擇程序設(shè)計,寫一個程序完成下列功能: 1 輸入一個分?jǐn)?shù)score 2 score60 輸出 E 3 60=score 75 輸出 D 4 75=score 80 輸出 C 5 80=score 90 輸出 B 5 90=score 輸出 A,下一頁,第4章 選擇程序設(shè)計,多分支問題,main( ) float score;
7、scanf(“%f”, ,下一頁,第4章 選擇程序設(shè)計,程序,if語句中的表達(dá)式一般為關(guān)系或邏輯表達(dá)式,也可以為任何數(shù)值類型的表達(dá)式。 執(zhí)行語句可以是一條簡單語句、空語句或復(fù)合語句,也可以嵌套其它流程控制語句。,復(fù)雜條件選擇,輸入兩個字符ch1和ch2, 如果ch1=Z 且 ch2=B, 則輸出“You are right ! “,下一頁,第4章 選擇程序設(shè)計,問題,main() char ch1,ch2; ch1=getchar( ); ch2=getchar( ); if ( ch1 = Z ,下一頁,第4章 選擇程序設(shè)計,程序,4.3.4 if語句的嵌套,在上述3種if語句結(jié)構(gòu)中,當(dāng)if
8、(表達(dá)式)或else后面的語句本身又是一個if語句結(jié)構(gòu)時,就形成了if語句的嵌套結(jié)構(gòu)。,下一頁,第4章 選擇程序設(shè)計,if 語句的二層嵌套結(jié)構(gòu)如右:,if ( 表達(dá)式1) if ( 表達(dá)式1_2) 語句1_1 else 語句1_2 else if ( 表達(dá)式2_1) 語句2_1 else 語句2_2,例題4.3的分段函數(shù)可以用兩層嵌套來完成:,if (x 0 時走這條分支*/ if (x=10) /*當(dāng) 0 x =1 0 */ y = x-2; else /*當(dāng) 10 x */ y = x/10;,下一頁,第4章 選擇程序設(shè)計,兩層嵌套流程圖,下一頁,第4章 選擇程序設(shè)計,if (x 0 時走
9、這條分支*/ if (x=10) /*當(dāng) 0 x =1 0 */ y = x-2; else /*當(dāng) 10 x */ y = x/10; 添加花括號后可以很清楚地表示出else 與外層if的配對情況。,下一頁,第4章 選擇程序設(shè)計,注意結(jié)構(gòu),編程實現(xiàn):根據(jù)兩個數(shù)sex和tall分類, 如果sex為F,當(dāng)tall大于等于150時,輸出” A “,否則輸出 “ B “;若sex不為F, 當(dāng)tall大于等于170時,輸出A,否則輸出B。,下一頁,第4章 選擇程序設(shè)計,例4.4,分析: 根據(jù)sex分支 在sex為F的分支中判斷tall=150否 在sex不為F的分支中判斷tall=170否,void
10、main() int tall; char sex; printf( “input sex and tall :” ); scanf( “%c %d”, ,下一頁,第4章 選擇程序設(shè)計,程序,條件語句,在C語言中,簡單的分支選擇可以用條件語句實現(xiàn)。 條件語句的一般形式為: ? : 條件運(yùn)算符 ?, : 的含義是: 表達(dá)式1的值為真:計算表達(dá)式2, 表達(dá)式1的值為假,計算表達(dá)式3。 被計算的表達(dá)式的值作為整個表達(dá)式的值。,下一頁,第4章 選擇程序設(shè)計,用條件語句實現(xiàn): y = x= 0為假,則y = 2*x,下一頁,第4章 選擇程序設(shè)計,C語言中條件運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符,但低于邏輯運(yùn)算符
11、。 條件運(yùn)算符要求有三個操作對象,稱三目(元)運(yùn)算符。 條件運(yùn)算符的結(jié)合方向為“自右至左”。如條件表達(dá)式: y=x10?x/10:x0?x:-x; 從右至左結(jié)合,等價于: y=x10?x/10:(x0?x:-x); 它的功能是:當(dāng)x10時,y的值為x/10; 當(dāng)x0?,第4章 選擇程序設(shè)計,返回,4.4 Switch語句,switch(表達(dá)式) case 常量1: 語句1; case 常量2: 語句2; case 常量3: 語句3; default: 語句4;,另一種多分支語句,根據(jù)表達(dá)式不同的值選擇不同的語句。,下一頁,第4章 選擇程序設(shè)計,Switch語句的一般形式,語句中的表達(dá)式可以是數(shù)
12、字型或字符型,表達(dá)式的值,稱為開關(guān)值。 語句結(jié)構(gòu)中各個case后常量表達(dá)式的值必須互不相同;否則執(zhí)行時將出現(xiàn)矛盾,即同一個開關(guān)值,對應(yīng)多種執(zhí)行方案。 當(dāng)表達(dá)式的值與某一個常量相等時,就執(zhí)行后面的語句;若無break語句,執(zhí)行該語句后,流程控制轉(zhuǎn)移到下一個分支: 繼續(xù)執(zhí)行這一個分支的語句,一至到最后下個語句執(zhí)行完。 當(dāng)表達(dá)式的值與所有常量表達(dá)式的值不相等時,執(zhí)行default:后面的語句。,下一頁,第4章 選擇程序設(shè)計,注意,switch(i) case 1:printf(An); break; case 2:printf(Bn); break; case 3:printf(Cn) ; brea
13、k; case 4:printf(Dn); break; default:printf(En);,假設(shè)i=3時,則會從i=3時做起始語句。如果給每條語句加上break這樣就只執(zhí)行一條語句,CDE,下一頁,第4章 選擇程序設(shè)計,看下面的例子,運(yùn)行結(jié)果,語句后加或不加“break;”可以使多分支變得非常靈活。如果多種情況需要共用一個執(zhí)行語句,可用case的常量表達(dá)式多種情況列出,最后一種情況后,才放執(zhí)行的語句。 case后面的語句可以是一條語句,也可以是復(fù)合語句,還可以是花括弧括起來的幾條語句,還可以是空語句。 有多條語句時會順序執(zhí)行完所有語句。,下一頁,第4章 選擇程序設(shè)計,說明,編程:根據(jù)輸入的學(xué)生的成績判斷等級。當(dāng)成績score 90時為 A等; 成績70score 90 為B等; 成績60score 70 為C等; 成績score 60 為D等 (score 為整數(shù))。,分析: 設(shè)score為整型數(shù),在score90 的范圍內(nèi),score可能取100, 99,.,90,利用兩
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/Z 6113.405-2026無線電騷擾和抗擾度測量設(shè)備和測量方法規(guī)范第4-5部分:不確定度、統(tǒng)計學(xué)和限值建模替換試驗方法的使用條件
- 流程工業(yè)智能制造技術(shù)理論及應(yīng)用 課件 第五章-流程工業(yè)過程實時優(yōu)化
- 感恩活動策劃方案流程(3篇)
- 江門地產(chǎn)活動策劃方案(3篇)
- 活動策劃方案賺錢文案(3篇)
- 跨年歡聚活動策劃方案(3篇)
- 配送企業(yè)人員管理制度范本(3篇)
- 高速道路救援管理制度范本(3篇)
- 2026年及未來5年市場數(shù)據(jù)中國投資保險行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報告
- 養(yǎng)老院活動策劃制度
- 2025屆新疆烏魯木齊市高三下學(xué)期三模英語試題(解析版)
- DB3210T1036-2019 補(bǔ)充耕地快速培肥技術(shù)規(guī)程
- 混動能量管理與電池?zé)峁芾淼膮f(xié)同優(yōu)化-洞察闡釋
- T-CPI 11029-2024 核桃殼濾料標(biāo)準(zhǔn)規(guī)范
- 統(tǒng)編版語文三年級下冊整本書閱讀《中國古代寓言》推進(jìn)課公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 《顧客感知價值對綠色酒店消費(fèi)意愿的影響實證研究-以三亞S酒店為例(附問卷)15000字(論文)》
- 勞動仲裁申請書電子版模板
- 趙然尊:胸痛中心時鐘統(tǒng)一、時間節(jié)點定義與時間管理
- 家用燃?xì)庠罱Y(jié)構(gòu)、工作原理、配件介紹、常見故障處理
- ZD(J)9-型電動轉(zhuǎn)轍機(jī)
- DB21T 3414-2021 遼寧省防汛物資儲備定額編制規(guī)程
評論
0/150
提交評論