




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第5章 選擇結(jié)構(gòu)程序設(shè)計,Follow me!,5.1 關(guān)系運算符和關(guān)系表達式,1. 關(guān)系運算符及其優(yōu)先次序 語言中的關(guān)系運算符有種: 、=、(等于)、!(不等于) 關(guān)系運算符都是雙目運算符,其結(jié)合性均為左結(jié)合。 運算優(yōu)先次序: 1.在6種關(guān)系運算符中,前種同級,高于后種(后種同級) 例如: x != y、 s - db+c bd、a= = bc 等價于 (bd)=c,2.關(guān)系運算符的優(yōu)先級低于算術(shù)運算符,高于賦值運算符。 算術(shù)運算符 (高) 關(guān)系運算符 賦值運算符 (低),2. 關(guān)系表達式 用關(guān)系運算符將兩個表達式連接起來的式子。 如:(ab)(by 、s+fd 關(guān)系表達式的值是一個邏輯值(
2、真或假),但語言沒有邏輯型數(shù)據(jù),關(guān)系表達式的真、假是以 數(shù)值1和0表示。“”代表“真”,以“”代表“假”。 例: a=3, b=2, c=1 則 cb; 0 (a-b) = = 1; 1 b+cbc; (自左至右 )f=0,邏輯運算符及其優(yōu)先次序 C語言提供三種邏輯運算符: ,5.3 if 語句,3. if (表達式) 語句 1 (多分支) else if(表達式2) 語句 2 else if(表達式3) 語句 3 else if(表達式m) 語句 m else 語句 n,2. if (表達式) 語句 else 語句 2 (雙分支) 如: if(xy) printf(“ %d ”, x); e
3、lse printf(“%d”,y);,如: If (x=90)y=1; else if (x=80)y=2; Else if (x=60)y=3; Else y=0;,說明: (1)條件表達式必須用圓括號括起來。 (2)條件表達式可以邏輯表達式或關(guān)系表達式,也可以是其它表達式,如賦值表達式等,甚至也可以是一個變量 。 如:if (b) printf(“%dn”,x); (3)else子句不能單獨使用,必須配合if語句使用。 (4)if和else后均可放置復(fù)合語句。 復(fù)合語句是用括起來的多個C語句。 例:由小到大輸出兩個數(shù)。 Main() Float a,b,t; Scanf(“%f,%f”,
4、a,b); If (ab) t=a;a=b;b=t; Printf(“%5.2f,%5.2fn”,a,b);,復(fù)合語句,2. if 語句的嵌套 if ( ) if ( ) 語句 else 語句 else if ( ) 語句 else 語句 這里,else總是與最近的未配對的if配對。 把內(nèi)嵌的語句寫在中不容易出錯,#include main( ) int numb1, sign; printf(“Please input an numbern”); scanf(“%d”,例:求,開始,Numb10?,結(jié)束,打印numb1,輸入numb1,Y,N,N,Sign=-1,Numb1=0?,Sign=
5、1,Sign=0,Y,見書95頁其它幾種寫法!,3. 條件運算符及其表達式 條件運算符為?和:,是一個三目運算符,有三個參與運算的量。 一般形式:表達式1? 表達式2: 表達式3 求值規(guī)則為:如果表達式1的值為真,則以表達式2 的值作為條件表達式的值,否則以表達式2的值作為整個條件表達式的值。 條件表達式通常用于賦值語句之中,表達式的值真、假時都執(zhí)行賦值語句,且均賦給同一變量。 例如:由條件語句: if(ab) max=a;else max=b; 執(zhí)行該語句的語義是:如ab為真,則把a賦予max,否則把b 賦予max。,max=(ab)?a:b;,寫成,使用條件表達式時,注意: 1. 條件運算
6、符的運算優(yōu)先級低于關(guān)系運算符和算術(shù)運算符,但高于賦值符。因此 max=(ab)?a:b可以去掉括號而寫為 max=ab?a:b 2. 條件運算符?和:是一對運算符,不能分開單獨使用。 3. 條件運算符的結(jié)合方向是自右至左。 ab?a:cd?c:d應(yīng)理解為ab?a:(cd?c:d) 4.條件表達式中的三個表達式的數(shù)據(jù)類型可以不同。如x ? a : b 。表達式的類型取表達式2和表達式3中類型較高者。(int和float,取float),例:輸入一個字符,判別它是否是大寫字母。是,將它轉(zhuǎn)成小寫字母;不是,不轉(zhuǎn)換。最后輸出結(jié)果。 #include “stdio.h” void main() char
7、 ch; scanf (“%c”, ,語言還提供了另一種用于多分支選擇的switch語句 一般形式為: switch(表達式) case 常量表達式1: 語句1; case 常量表達式2: 語句2; case 常量表達式n: 語句n; default : 語句n+1; 語義是:計算表達式的值。 并逐個與其后的常量表達式值相比較,當表達式的值與某個常量表達式的值相等時, 即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句。 如表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行default后的語句。,5.4 switch 語句,例:比較下面兩段程序 void main()
8、 int a;printf(input integer number: );scanf(%d,void main() int a;printf(input integer number: );scanf(%d,Break語句: 專用于跳出switch語句,只有關(guān)鍵字break,沒有參數(shù)。,使用switch語句時還應(yīng)注意: 1.在case后的各常量表達式的值不能相同,否則會出現(xiàn)錯誤。2.在case后,允許有多個語句,可以不用括起來。3.各case和default子句的先后順序可以變動,而不會影響程序執(zhí)行結(jié)果。4.default子句可以省略不用。 5. 多個case可以共用一組執(zhí)行語句。 case
9、 A: case B: case C:printf(“60n”); break;,5.5 程序舉例,#include “stdio.h” void main() int year, leap; scanf(“%d”, ,例1:寫出判斷某年是否閏年的程序。條件為下面之一: (1)能被4整除,但不能被100整除; (2)能被4整除,又能被400整除。,void main() int a,b,c,max,min; printf(input three numbers: ); scanf(%d%d%d,例2:輸入三個整數(shù),輸出最大數(shù)和最小數(shù)。,#include “stdio.h” void main() int c, s; float p, w, d, f; scanf (“%f, %f, %d”, ,例3:運輸公司計算用戶運費。其中:S路程,p基本運費,w貨重,d折扣。 S250km 無折扣 250s500 2%折扣 500 s1000 5%折扣 1000 s2000 8%折扣 2000 s3000 10%折扣 300
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位改造車棚合同范例
- 合作合同范本 英文
- 主播合同范本個人
- 化工藥劑供貨合同范本
- 公司內(nèi)勤合同范本
- 合租廠房合同范本
- 醫(yī)院大型設(shè)備合同范例
- 單獨設(shè)計合同范例
- 送貨付款合同范本模板
- 吳中區(qū)解約合同范例
- (100題)2024時事政治考試題庫
- 新概念英語第二冊-Lesson18-同步習題含答案
- 中國兒童幽門螺桿菌感染診治專家共識2022
- 全國大學(xué)英語六級詞匯表
- 2024年3月江蘇海洋大學(xué)招考聘用專職輔導(dǎo)員和工作人員5人筆試參考題庫附帶答案詳解
- 垂線課件人教版數(shù)學(xué)七年級下冊
- 建設(shè)法規(guī)(全套課件)
- 東來順牛羊肉培訓(xùn)
- 心衰患者的容量管理中國專家共識-共識解讀
- 外用激素合理使用
- H3C全系列產(chǎn)品visio圖標庫
評論
0/150
提交評論