




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第3章章 分支程序設(shè)計分支程序設(shè)計3.1 關(guān)系表達式和邏輯表達式3.2 如果語句(if語句)3.3多分支語句(switch語句)3.4 分支程序設(shè)計應(yīng)用實例本章小結(jié)n 通常情況下,計算機要根據(jù)不同的條件來執(zhí)行不同的程序段,即判斷某個變量或表達式的值,以決定執(zhí)行哪些語句或跳過哪些語句。比如,根據(jù)學(xué)生的分數(shù)來評定優(yōu)、良、及格、不及格等級,如60分以下為不及格,90分以上為優(yōu)等。n 這種結(jié)構(gòu)通常稱之為選擇結(jié)構(gòu),因為按不同的條件來確定程序不同的轉(zhuǎn)向,所以也稱之為分支結(jié)構(gòu)。3.1 關(guān)系表達式和邏輯表達式關(guān)系表達式和邏輯表達式n3.3.1 關(guān)系運算 關(guān)系運算就是對兩個數(shù)據(jù)按它們值的大小進行比較的運算。
2、判斷它們是否符合給定條件:1.若符合,則結(jié)果為1(即“真”);2.否則結(jié)果為0(即“假”)。C語言提供了語言提供了6種關(guān)系運算符,如表種關(guān)系運算符,如表6-1所示。所示。運算符運算符 含義含義 優(yōu)先級優(yōu)先級 小于小于 6 6 = 大于大于 = 大于或等于大于或等于 = 等于等于 7 7 !=!= 不等于不等于 C語言關(guān)系運算符的優(yōu)先級如下語言關(guān)系運算符的優(yōu)先級如下:n關(guān)系運算符被分為兩組不同的優(yōu)先級 =、!= 優(yōu)先級低于 、= n關(guān)系運算符的優(yōu)先級低于算術(shù)運算符。n關(guān)系運算符的優(yōu)先級高于賦值運算符。例如:a b + 3 等價于a ( b +3 ) a = b 3 等價于a = ( b 3 )
3、a != b 3 等價于a != ( b 3 )n當(dāng)相同優(yōu)先級的關(guān)系運算符同時出現(xiàn)時,從左向右進行運算。例如:a != b = c等價于( a != b ) = cn用關(guān)系運算符連接兩個表達式組成的式子稱為關(guān)系表達式。下面的關(guān)系表達式都是合法的:n ab 1=1 1=0n在C語言中表達式為真時,其值為1;表達式為假時,其值為0.表達式除了值為1時表示真以外,所有非0值也都認為真,只有0被認為是假。如:nx=(32); 值為1 x=(32); 值為03.1.2 邏輯運算邏輯運算nC語言有三種邏輯運算符,如表3-2所示。運算符運算符 含義含義 優(yōu)先級優(yōu)先級 結(jié)合方向結(jié)合方向 ! 邏輯非邏輯非 2
4、2 右右 & 邏輯與邏輯與 1111 左左 | 邏輯或邏輯或 1212 左左 說明:說明: 邏輯運算符中,“&”和“|”是雙目運算符,要求有兩個運算量;“!”是單目運算符。 下面是C語言邏輯運算符的優(yōu)先級說明。1) “!”高于 “&” ,“&” 高于 “|” 。2) “!”高于算術(shù)運算符,而 “&” 和 “|” 低于關(guān)系運算符。 假設(shè)A和B是兩個表達式,下面對邏輯運算進行說明。1) A & B若A、B均為真,則“A & B”值為真,否則為假。2) A | B若A、B均為假,則“A | B值”為假,否則為真。3)! A若A為真,則 “!A”
5、為假;否則為真??聪旅娴睦樱嚎聪旅娴睦樱?.( 3 5 )值:0只有 & 右面的子表達式為真2.( 3 5 )值:1只要求有一個子表達式為真3.! ( 3 7 & x + y != 20等價于( x 7 ) & ( ( x + y ) != 20 )3。2 如果語句(如果語句(if語句)語句)nif語句通常被稱為選擇語句或分支語句。n它不再局限于順序結(jié)構(gòu)單一流程,而是用來對給定條件進行判定,根據(jù)其判定結(jié)果,從兩種操作中選擇其一。nif語句用于實現(xiàn)分支結(jié)構(gòu),C語言提供了二種形式的if語句。3.2.1 if語句語句 n一般形式:if(表達式) 語句n執(zhí)行過程如圖3-1所
6、示。說明:1執(zhí)行if語句時,先對“表達式”進行求值,如果計算結(jié)果非0(為“真”),則執(zhí)行其后的“語句”,否則跳過其后的“語句”。 2“表達式”的類型可以為任何類型的表達式。表達式語 句真(非0)假(0)例例3-1 輸入一個成績輸入一個成績score,如果成績大于,如果成績大于60,則顯示則顯示“pass”,否則不顯示。,否則不顯示。main( ) int score; scanf(%d, &score ); if ( score = 60 ) printf(pass n);getch( );功能:先對條件score = 60進行計算,如果成立,就執(zhí)行 printf語句;否則,就跳過 p
7、rintf語句,轉(zhuǎn)而執(zhí)行后續(xù)語句。運行結(jié)果:1. 輸入:65 輸出: pass2. 若輸入:56 ,則無輸出3.2.2 if_else語句語句n格式:if ( 表達式 )語句1;else 語句2;n執(zhí)行過程如圖3-2所示。n如果表達式計算為真,則執(zhí)行語句1;否則執(zhí)行語句2.表達式語 句 1語 句 2真(非0)假(0)例例3-2:從鍵盤輸入一個正整數(shù),如果該數(shù)為:從鍵盤輸入一個正整數(shù),如果該數(shù)為6的倍數(shù),就的倍數(shù),就輸出一個輸出一個“Yes!”,否則輸出一個,否則輸出一個“No!”。main( ) int x; printf(請輸入一個正整數(shù):); scanf(%d, &x ); if
8、( x%6 =0 ) printf(Yes! n ); else printf( No! n ); getch( );運行結(jié)果:1. 請輸入一個正整數(shù):36Yes!2. 請輸入一個正整數(shù):15No!3.2.3 if語句的嵌套語句的嵌套n一般形式是:if(表達式1)語句1;else if(表達式2) 語句2;else if (表達式3)語句3;else 語句4;執(zhí)行過程如圖執(zhí)行過程如圖3-4所示。所示。假表達式1語 句 1表達式2語 句 2表達式3語 句 3語 句 4假假真真真例例3-3 有一個函數(shù),編寫程序,輸入有一個函數(shù),編寫程序,輸入x,輸出,輸出y值。值。 x ( x 1 ) y= 2
9、x 1( 1 x 10 ) 3 x 10( x 10 )main( ) float x, y; printf(請輸入x的值:); scanf(%f, &x ); if ( x 1 ) y = x; else if ( x = A & ch = Z ? ch +32 : ch );printf(%c n, ch );3.3多分支語句(多分支語句(switch語句)語句)n一般形式如下:switch ( 表達式 )case 常量表達式1:語句部分1; break;case 常量表達式2:語句部分2; break;case 常量表達式n:語句部分n; break; default:語
10、句部分n+1;switch語句的工作過程是:語句的工作過程是:n以上格式中, 內(nèi)的語句為可選的。首先對switch語句括號中的表達式進行計算,然后依次與各case中的常量表達式的值比較,一旦匹配成功,則馬上執(zhí)行相應(yīng)的語句部分,若遇break,結(jié)束switch語句;若均不匹配,則執(zhí)行 default(若有的話)后的語句部分。n當(dāng)程序執(zhí)行break語句后,它就使程序流程跳出switch結(jié)構(gòu),并轉(zhuǎn)而執(zhí)行switch結(jié)構(gòu)后面的第一條語句。例例3-5:根據(jù)考試成績的等級(根據(jù)考試成績的等級(A、B、C、D),),輸出輸出“優(yōu)秀優(yōu)秀”,“良好良好”等評語。等評語。#include main( ) char
11、 grade; printf(請輸入成績等級(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( );運行結(jié)果:請輸入成績等級(A、B、C、D):C及格執(zhí)行過程執(zhí)行過程grade優(yōu)秀良好及格不及格 A B C default 例例3-6:在在switch結(jié)構(gòu)中多個結(jié)構(gòu)中多個case標(biāo)號共用一組標(biāo)號共用一組執(zhí)行語句執(zhí)行語句#
12、include main( ) char grade; printf(請輸入成績等級(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ù)錯誤 n); getch( );運行結(jié)果:請輸入成績等級(A、B、C、D):B及格運行結(jié)果:請輸入成績等級(A、B、C、D):A及格由此可見,grade的為A、B、C、時,均時,均執(zhí)行同一組語句。執(zhí)行同一組語句。3.4 分支
13、程序設(shè)計應(yīng)用實例分支程序設(shè)計應(yīng)用實例n例3-7: 從鍵盤輸入二個整數(shù),輸出其中最大者。main( ) int a, b, max; printf(請輸入二個整數(shù):); scanf(%d %d, &a, &b ); if ( a b ) max = a; else max = b; printf(二者中最大值為:%d, max ); getch( );運行結(jié)果: 1731二者中最大值為:31例例3-8:從鍵盤輸入二個整數(shù),從小到大輸出。:從鍵盤輸入二個整數(shù),從小到大輸出。n方法:若第一個數(shù)較大,兩者值互換。main( ) int a, b, tmp; printf(輸入二個整數(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:編寫一個程序,判斷一個字符是否為英文:編寫一個程序,判斷一個字符是否為英文字母。字母。例例3-10:由半徑為:由半徑為 1的圓和半徑為的圓和半徑為 2的圓所圍成的的圓所圍成的圓環(huán)如圖圓環(huán)如圖3-3所示。所示。編寫程序,輸入編寫程序,輸入x,y,若點,若點 (x, y) 在圓環(huán)內(nèi),則在圓環(huán)內(nèi),則輸出輸出TRUE;否則輸出;否則輸出FALSE。本章小結(jié)本章小結(jié)nif語句和switch語句用于實現(xiàn)分支結(jié)構(gòu)。分支結(jié)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美食城檔口消費者權(quán)益保護與投訴處理合同
- 高科技企業(yè)實驗室助理派遣及研發(fā)成果轉(zhuǎn)化合同
- 影視拍攝場地消防安全管理與維護協(xié)議
- 建筑安全設(shè)施認證與施工監(jiān)理協(xié)議
- 木地板維護協(xié)議書
- 電商平臺帶貨分成比例調(diào)整補充協(xié)議
- 學(xué)校油漆門協(xié)議書
- 敬老院廚師協(xié)議書
- 地洗車轉(zhuǎn)讓協(xié)議書
- 房地產(chǎn)開發(fā)企業(yè)客服團隊派遣及培訓(xùn)協(xié)議
- 鐵路典型事故案例分析課件
- 自行招用保安員單位備案申請材料
- 通用員工入職offer模板
- 2021譯林版高中英語選擇性必修一課文翻譯
- 醫(yī)院工作制度與人員崗位職責(zé)2011(衛(wèi)生部醫(yī)管司修訂)
- 二級、三級電箱接線圖
- (完整版)非計劃性拔管魚骨圖
- 最新美術(shù)中國傳統(tǒng)玩具課件PPT
- 名著導(dǎo)讀《紅樓夢》PPT課件(完整版)
- GB∕T 10544-2022 橡膠軟管及軟管組合件 油基或水基流體適用的鋼絲纏繞增強外覆橡膠液壓型 規(guī)范
- Python編碼規(guī)范
評論
0/150
提交評論