![第3章 分支程序設(shè)計(jì)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3080c852-028f-4793-aedf-b1096c4f53b4/3080c852-028f-4793-aedf-b1096c4f53b41.gif)
![第3章 分支程序設(shè)計(jì)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3080c852-028f-4793-aedf-b1096c4f53b4/3080c852-028f-4793-aedf-b1096c4f53b42.gif)
![第3章 分支程序設(shè)計(jì)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3080c852-028f-4793-aedf-b1096c4f53b4/3080c852-028f-4793-aedf-b1096c4f53b43.gif)
![第3章 分支程序設(shè)計(jì)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3080c852-028f-4793-aedf-b1096c4f53b4/3080c852-028f-4793-aedf-b1096c4f53b44.gif)
![第3章 分支程序設(shè)計(jì)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3080c852-028f-4793-aedf-b1096c4f53b4/3080c852-028f-4793-aedf-b1096c4f53b45.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第3章章 分支程序設(shè)計(jì)分支程序設(shè)計(jì)3.1 關(guān)系表達(dá)式和邏輯表達(dá)式3.2 如果語(yǔ)句(if語(yǔ)句)3.3多分支語(yǔ)句(switch語(yǔ)句)3.4 分支程序設(shè)計(jì)應(yīng)用實(shí)例本章小結(jié)n 通常情況下,計(jì)算機(jī)要根據(jù)不同的條件來(lái)執(zhí)行不同的程序段,即判斷某個(gè)變量或表達(dá)式的值,以決定執(zhí)行哪些語(yǔ)句或跳過(guò)哪些語(yǔ)句。比如,根據(jù)學(xué)生的分?jǐn)?shù)來(lái)評(píng)定優(yōu)、良、及格、不及格等級(jí),如60分以下為不及格,90分以上為優(yōu)等。n 這種結(jié)構(gòu)通常稱之為選擇結(jié)構(gòu),因?yàn)榘床煌臈l件來(lái)確定程序不同的轉(zhuǎn)向,所以也稱之為分支結(jié)構(gòu)。3.1 關(guān)系表達(dá)式和邏輯表達(dá)式關(guān)系表達(dá)式和邏輯表達(dá)式n3.3.1 關(guān)系運(yùn)算 關(guān)系運(yùn)算就是對(duì)兩個(gè)數(shù)據(jù)按它們值的大小進(jìn)行比較的運(yùn)算。
2、判斷它們是否符合給定條件:1.若符合,則結(jié)果為1(即“真”);2.否則結(jié)果為0(即“假”)。C語(yǔ)言提供了語(yǔ)言提供了6種關(guān)系運(yùn)算符,如表種關(guān)系運(yùn)算符,如表6-1所示。所示。運(yùn)算符運(yùn)算符 含義含義 優(yōu)先級(jí)優(yōu)先級(jí) 小于小于 6 6 = 大于大于 = 大于或等于大于或等于 = 等于等于 7 7 !=!= 不等于不等于 C語(yǔ)言關(guān)系運(yùn)算符的優(yōu)先級(jí)如下語(yǔ)言關(guān)系運(yùn)算符的優(yōu)先級(jí)如下:n關(guān)系運(yùn)算符被分為兩組不同的優(yōu)先級(jí) =、!= 優(yōu)先級(jí)低于 、= n關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符。n關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符。例如:a b + 3 等價(jià)于a ( b +3 ) a = b 3 等價(jià)于a = ( b 3 )
3、a != b 3 等價(jià)于a != ( b 3 )n當(dāng)相同優(yōu)先級(jí)的關(guān)系運(yùn)算符同時(shí)出現(xiàn)時(shí),從左向右進(jìn)行運(yùn)算。例如:a != b = c等價(jià)于( a != b ) = cn用關(guān)系運(yùn)算符連接兩個(gè)表達(dá)式組成的式子稱為關(guān)系表達(dá)式。下面的關(guān)系表達(dá)式都是合法的:n ab 1=1 1=0n在C語(yǔ)言中表達(dá)式為真時(shí),其值為1;表達(dá)式為假時(shí),其值為0.表達(dá)式除了值為1時(shí)表示真以外,所有非0值也都認(rèn)為真,只有0被認(rèn)為是假。如:nx=(32); 值為1 x=(32); 值為03.1.2 邏輯運(yùn)算邏輯運(yùn)算nC語(yǔ)言有三種邏輯運(yùn)算符,如表3-2所示。運(yùn)算符運(yùn)算符 含義含義 優(yōu)先級(jí)優(yōu)先級(jí) 結(jié)合方向結(jié)合方向 ! 邏輯非邏輯非 2
4、2 右右 & 邏輯與邏輯與 1111 左左 | 邏輯或邏輯或 1212 左左 說(shuō)明:說(shuō)明: 邏輯運(yùn)算符中,“&”和“|”是雙目運(yùn)算符,要求有兩個(gè)運(yùn)算量;“!”是單目運(yùn)算符。 下面是C語(yǔ)言邏輯運(yùn)算符的優(yōu)先級(jí)說(shuō)明。1) “!”高于 “&” ,“&” 高于 “|” 。2) “!”高于算術(shù)運(yùn)算符,而 “&” 和 “|” 低于關(guān)系運(yùn)算符。 假設(shè)A和B是兩個(gè)表達(dá)式,下面對(duì)邏輯運(yùn)算進(jìn)行說(shuō)明。1) A & B若A、B均為真,則“A & B”值為真,否則為假。2) A | B若A、B均為假,則“A | B值”為假,否則為真。3)! A若A為真,則 “!A”
5、為假;否則為真??聪旅娴睦樱嚎聪旅娴睦樱?.( 3 5 )值:0只有 & 右面的子表達(dá)式為真2.( 3 5 )值:1只要求有一個(gè)子表達(dá)式為真3.! ( 3 7 & x + y != 20等價(jià)于( x 7 ) & ( ( x + y ) != 20 )3。2 如果語(yǔ)句(如果語(yǔ)句(if語(yǔ)句)語(yǔ)句)nif語(yǔ)句通常被稱為選擇語(yǔ)句或分支語(yǔ)句。n它不再局限于順序結(jié)構(gòu)單一流程,而是用來(lái)對(duì)給定條件進(jìn)行判定,根據(jù)其判定結(jié)果,從兩種操作中選擇其一。nif語(yǔ)句用于實(shí)現(xiàn)分支結(jié)構(gòu),C語(yǔ)言提供了二種形式的if語(yǔ)句。3.2.1 if語(yǔ)句語(yǔ)句 n一般形式:if(表達(dá)式) 語(yǔ)句n執(zhí)行過(guò)程如圖3-1所
6、示。說(shuō)明:1執(zhí)行if語(yǔ)句時(shí),先對(duì)“表達(dá)式”進(jìn)行求值,如果計(jì)算結(jié)果非0(為“真”),則執(zhí)行其后的“語(yǔ)句”,否則跳過(guò)其后的“語(yǔ)句”。 2“表達(dá)式”的類型可以為任何類型的表達(dá)式。表達(dá)式語(yǔ) 句真(非0)假(0)例例3-1 輸入一個(gè)成績(jī)輸入一個(gè)成績(jī)score,如果成績(jī)大于,如果成績(jī)大于60,則顯示則顯示“pass”,否則不顯示。,否則不顯示。main( ) int score; scanf(%d, &score ); if ( score = 60 ) printf(pass n);getch( );功能:先對(duì)條件score = 60進(jìn)行計(jì)算,如果成立,就執(zhí)行 printf語(yǔ)句;否則,就跳過(guò) p
7、rintf語(yǔ)句,轉(zhuǎn)而執(zhí)行后續(xù)語(yǔ)句。運(yùn)行結(jié)果:1. 輸入:65 輸出: pass2. 若輸入:56 ,則無(wú)輸出3.2.2 if_else語(yǔ)句語(yǔ)句n格式:if ( 表達(dá)式 )語(yǔ)句1;else 語(yǔ)句2;n執(zhí)行過(guò)程如圖3-2所示。n如果表達(dá)式計(jì)算為真,則執(zhí)行語(yǔ)句1;否則執(zhí)行語(yǔ)句2.表達(dá)式語(yǔ) 句 1語(yǔ) 句 2真(非0)假(0)例例3-2:從鍵盤輸入一個(gè)正整數(shù),如果該數(shù)為:從鍵盤輸入一個(gè)正整數(shù),如果該數(shù)為6的倍數(shù),就的倍數(shù),就輸出一個(gè)輸出一個(gè)“Yes!”,否則輸出一個(gè),否則輸出一個(gè)“No!”。main( ) int x; printf(請(qǐng)輸入一個(gè)正整數(shù):); scanf(%d, &x ); if
8、( x%6 =0 ) printf(Yes! n ); else printf( No! n ); getch( );運(yùn)行結(jié)果:1. 請(qǐng)輸入一個(gè)正整數(shù):36Yes!2. 請(qǐng)輸入一個(gè)正整數(shù):15No!3.2.3 if語(yǔ)句的嵌套語(yǔ)句的嵌套n一般形式是:if(表達(dá)式1)語(yǔ)句1;else if(表達(dá)式2) 語(yǔ)句2;else if (表達(dá)式3)語(yǔ)句3;else 語(yǔ)句4;執(zhí)行過(guò)程如圖執(zhí)行過(guò)程如圖3-4所示。所示。假表達(dá)式1語(yǔ) 句 1表達(dá)式2語(yǔ) 句 2表達(dá)式3語(yǔ) 句 3語(yǔ) 句 4假假真真真例例3-3 有一個(gè)函數(shù),編寫程序,輸入有一個(gè)函數(shù),編寫程序,輸入x,輸出,輸出y值。值。 x ( x 1 ) y= 2
9、x 1( 1 x 10 ) 3 x 10( x 10 )main( ) float x, y; printf(請(qǐng)輸入x的值:); scanf(%f, &x ); if ( x 1 ) y = x; else if ( x = A & ch = Z ? ch +32 : ch );printf(%c n, ch );3.3多分支語(yǔ)句(多分支語(yǔ)句(switch語(yǔ)句)語(yǔ)句)n一般形式如下:switch ( 表達(dá)式 )case 常量表達(dá)式1:語(yǔ)句部分1; break;case 常量表達(dá)式2:語(yǔ)句部分2; break;case 常量表達(dá)式n:語(yǔ)句部分n; break; default:語(yǔ)
10、句部分n+1;switch語(yǔ)句的工作過(guò)程是:語(yǔ)句的工作過(guò)程是:n以上格式中, 內(nèi)的語(yǔ)句為可選的。首先對(duì)switch語(yǔ)句括號(hào)中的表達(dá)式進(jìn)行計(jì)算,然后依次與各case中的常量表達(dá)式的值比較,一旦匹配成功,則馬上執(zhí)行相應(yīng)的語(yǔ)句部分,若遇break,結(jié)束switch語(yǔ)句;若均不匹配,則執(zhí)行 default(若有的話)后的語(yǔ)句部分。n當(dāng)程序執(zhí)行break語(yǔ)句后,它就使程序流程跳出switch結(jié)構(gòu),并轉(zhuǎn)而執(zhí)行switch結(jié)構(gòu)后面的第一條語(yǔ)句。例例3-5:根據(jù)考試成績(jī)的等級(jí)(根據(jù)考試成績(jī)的等級(jí)(A、B、C、D),),輸出輸出“優(yōu)秀優(yōu)秀”,“良好良好”等評(píng)語(yǔ)。等評(píng)語(yǔ)。#include main( ) char
11、 grade; printf(請(qǐng)輸入成績(jī)等級(jí)(A、B、C、D):);grade = getchar( );switch ( grade )case A: printf(優(yōu)秀 n);break; case B:printf(良好 n); break; case C: printf(及格 n);break;default:printf(不及格 n);break;getch( );運(yùn)行結(jié)果:請(qǐng)輸入成績(jī)等級(jí)(A、B、C、D):C及格執(zhí)行過(guò)程執(zhí)行過(guò)程grade優(yōu)秀良好及格不及格 A B C default 例例3-6:在在switch結(jié)構(gòu)中多個(gè)結(jié)構(gòu)中多個(gè)case標(biāo)號(hào)共用一組標(biāo)號(hào)共用一組執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句#
12、include main( ) char grade; printf(請(qǐng)輸入成績(jī)等級(jí)(A、B、C、D):); grade = getchar( ); switch ( grade ) case A: case B: case C: printf(及格 n); break; case D: printf (不及格 n); break; default: printf(輸入數(shù)據(jù)錯(cuò)誤 n); getch( );運(yùn)行結(jié)果:請(qǐng)輸入成績(jī)等級(jí)(A、B、C、D):B及格運(yùn)行結(jié)果:請(qǐng)輸入成績(jī)等級(jí)(A、B、C、D):A及格由此可見,grade的為A、B、C、時(shí),均時(shí),均執(zhí)行同一組語(yǔ)句。執(zhí)行同一組語(yǔ)句。3.4 分支
13、程序設(shè)計(jì)應(yīng)用實(shí)例分支程序設(shè)計(jì)應(yīng)用實(shí)例n例3-7: 從鍵盤輸入二個(gè)整數(shù),輸出其中最大者。main( ) int a, b, max; printf(請(qǐng)輸入二個(gè)整數(shù):); scanf(%d %d, &a, &b ); if ( a b ) max = a; else max = b; printf(二者中最大值為:%d, max ); getch( );運(yùn)行結(jié)果: 1731二者中最大值為:31例例3-8:從鍵盤輸入二個(gè)整數(shù),從小到大輸出。:從鍵盤輸入二個(gè)整數(shù),從小到大輸出。n方法:若第一個(gè)數(shù)較大,兩者值互換。main( ) int a, b, tmp; printf(輸入二個(gè)整數(shù):
14、); scanf(%d %d, &a, &b );/* a = 20, b =15 */ if ( a b ) tmp = a; /* tmp = 20 */ a = b; /* a = 15 */b = tmp; /* b = 20 */ printf(%d, %d, a, b );例例3-9:編寫一個(gè)程序,判斷一個(gè)字符是否為英文:編寫一個(gè)程序,判斷一個(gè)字符是否為英文字母。字母。例例3-10:由半徑為:由半徑為 1的圓和半徑為的圓和半徑為 2的圓所圍成的的圓所圍成的圓環(huán)如圖圓環(huán)如圖3-3所示。所示。編寫程序,輸入編寫程序,輸入x,y,若點(diǎn),若點(diǎn) (x, y) 在圓環(huán)內(nèi),則在圓環(huán)內(nèi),則輸出輸出TRUE;否則輸出;否則輸出FALSE。本章小結(jié)本章小結(jié)nif語(yǔ)句和switch語(yǔ)句用于實(shí)現(xiàn)分支結(jié)構(gòu)。分支結(jié)
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Target-Protein-Ligand-Linker-Conjugates-4-生命科學(xué)試劑-MCE-5926
- 1-2-Dihexanoyl-sn-glycero-3-PS-sodium-生命科學(xué)試劑-MCE-8684
- 二零二五年度離婚協(xié)議書中共同財(cái)產(chǎn)清算起訴狀
- 2025年度電力市場(chǎng)交易購(gòu)售電合同
- 二零二五年度大型賽事活動(dòng)合作2025年度營(yíng)銷合同
- 二零二五年度私人住宅裝修質(zhì)量與安全雙保障協(xié)議
- 2025年度離婚子女債務(wù)償還與財(cái)產(chǎn)分割執(zhí)行協(xié)議
- 2025年度煙酒企業(yè)社會(huì)責(zé)任履行與公益合作合同
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)銀行擔(dān)保協(xié)議
- 2025年度智慧社區(qū)建設(shè)采購(gòu)合同智能設(shè)備配置規(guī)范
- 北京市海淀區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2025年廣西柳州市中級(jí)人民法院招錄聘用工作人員17人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年全國(guó)職業(yè)院校技能大賽高職組(研學(xué)旅行賽項(xiàng))考試題庫(kù)(含答案)
- 十八項(xiàng)核心制度
- 2025年物業(yè)公司安全生產(chǎn)工作計(jì)劃(5篇)
- 2025社保政策培訓(xùn)
- 電器儀表人員培訓(xùn)課件
- 2025年中小學(xué)春節(jié)安全教育主題班會(huì)課件
- 2023年工程制圖習(xí)題集
- 計(jì)量經(jīng)濟(jì)學(xué)練習(xí)題
- 2025年全國(guó)高考體育單招考試模擬政治試卷試題(含答案詳解)
評(píng)論
0/150
提交評(píng)論