版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第6章選擇結(jié)構(gòu)程序設(shè)計 選擇結(jié)構(gòu)的選擇結(jié)構(gòu)的N-S流程圖如圖流程圖如圖6.1所示。所示。 A B 1 P 0 圖6.1 選擇結(jié)構(gòu)的N-S流程圖 P為選擇的條件,對于執(zhí)行為選擇的條件,對于執(zhí)行A還是還是B要根要根據(jù)條件據(jù)條件P的判斷結(jié)果來決定,如果條件的判斷結(jié)果來決定,如果條件P的結(jié)的結(jié)果為真則執(zhí)行果為真則執(zhí)行A,如果條件,如果條件P的結(jié)果為假則的結(jié)果為假則執(zhí)行執(zhí)行B。這里條件。這里條件P的結(jié)果就成為執(zhí)行的結(jié)果就成為執(zhí)行A還是還是B的關(guān)鍵所在。的關(guān)鍵所在。P是一個判斷的條件,其結(jié)果是一個判斷的條件,其結(jié)果為真或者假,將其稱為為真或者假,將其稱為“邏輯量邏輯量”。C語言中語言中沒有提供邏輯型變量,
2、可以使用整型數(shù)據(jù)去沒有提供邏輯型變量,可以使用整型數(shù)據(jù)去描述描述1表示真,表示真,0表示假。在表示假。在C語言中任意確語言中任意確定的值都可作為邏輯量處理,當(dāng)作為邏輯量定的值都可作為邏輯量處理,當(dāng)作為邏輯量處理時,如果該值為非處理時,如果該值為非0,則表示真,則表示真1),),如果該值為如果該值為0,則表示假,則表示假0)。下面講述條)。下面講述條件件P的邏輯量表示方法。的邏輯量表示方法。6.1 6.1 邏輯量的表示方法邏輯量的表示方法6.2 if6.2 if語句語句6.3 switch6.3 switch語句語句6.4 6.4 選擇結(jié)構(gòu)程序設(shè)計舉例選擇結(jié)構(gòu)程序設(shè)計舉例6.1 6.1 邏輯量的
3、表示方法邏輯量的表示方法 C C語言中邏輯量是用整型數(shù)語言中邏輯量是用整型數(shù)據(jù)來表示的,用來表示真或成立,據(jù)來表示的,用來表示真或成立,用來表示假或不成立。邏輯量的用來表示假或不成立。邏輯量的表示是非常靈活的,具體表示方法表示是非常靈活的,具體表示方法有以下幾種方式。有以下幾種方式。6.1.1 關(guān)系表達(dá)式1關(guān)系運算符關(guān)系運算符 關(guān)系運算是一種比較運算符兩側(cè)運算對象大小的運算,完成兩個運算對象比較,運算結(jié)果為成立與不成立,關(guān)系運算是一種比較運算符兩側(cè)運算對象大小的運算,完成兩個運算對象比較,運算結(jié)果為成立與不成立,用用1和和0表示。表示。 關(guān)系運算符有以下關(guān)系運算符有以下6種:種: ,=,b,3
4、+7!=10,aa a+(b=a+)都是合法的都是合法的C語言關(guān)系表達(dá)式。語言關(guān)系表達(dá)式。 關(guān)系表達(dá)式的求解遵循表達(dá)式求解規(guī)則,關(guān)關(guān)系表達(dá)式的求解遵循表達(dá)式求解規(guī)則,關(guān)系運算的結(jié)果只有兩種可能,要么關(guān)系成立為真系運算的結(jié)果只有兩種可能,要么關(guān)系成立為真1),要么關(guān)系不成立為假),要么關(guān)系不成立為假0)。)。例如有整型變量例如有整型變量a a,b b,且,且a a3 3,b b5 5, 求解表達(dá)式:求解表達(dá)式:a ababa 算術(shù)運算符算術(shù)運算符“”的優(yōu)先級高于關(guān)系運的優(yōu)先級高于關(guān)系運算符算符“ ”,因此先計算,因此先計算a ab b的值為的值為8 8,之后運算,之后運算8a8a,而,而aa參加
5、運算時需轉(zhuǎn)換為整型數(shù)參加運算時需轉(zhuǎn)換為整型數(shù)9797運運算,實際運算的是算,實際運算的是897897,判斷后其結(jié)果為不成,判斷后其結(jié)果為不成立,表達(dá)式的運算結(jié)果為立,表達(dá)式的運算結(jié)果為0 0。 若有關(guān)系表達(dá)式若有關(guān)系表達(dá)式0 x100 x10,則其運算結(jié)果為,則其運算結(jié)果為邏輯量邏輯量1 1。表達(dá)式中兩個。表達(dá)式中兩個 運算的優(yōu)先級相同,運算的優(yōu)先級相同,于是首先運算于是首先運算0 x0 x,x x的值無論是多少,運算結(jié)的值無論是多少,運算結(jié)果只能是果只能是1 1或者或者0 0;然后要么運算;然后要么運算110110,要么運,要么運算算0100n) if(mn) else else print
6、f( printf(The max is %dnhe max is %dn,n);n); Y N 輸 出 m 輸 出 n 輸 入 m, n mn 圖6.7 例6.2的流程圖使用使用if語句要注意以下幾點。語句要注意以下幾點。(1if語句是一條語句。語句是一條語句。(2邏輯量是邏輯量是if語句選擇判斷的條件,語句選擇判斷的條件,C語言中任語言中任意確定的值都可以作為邏輯量處理。意確定的值都可以作為邏輯量處理。(3邏輯量為邏輯量為1和為和為0的分支都只能是單條語句,的分支都只能是單條語句,如果要執(zhí)行多個操作的話,應(yīng)該將多個操作復(fù)合為如果要執(zhí)行多個操作的話,應(yīng)該將多個操作復(fù)合為單條語句才能出現(xiàn)在單條
7、語句才能出現(xiàn)在if的分支結(jié)構(gòu)中。的分支結(jié)構(gòu)中。(4分支中出現(xiàn)的語句分支中出現(xiàn)的語句1是復(fù)合語句的時候,是復(fù)合語句的時候,后后不應(yīng)該有不應(yīng)該有“;”。(5語句中語句語句中語句1是條件語句中必不可少的部分。是條件語句中必不可少的部分。(6正確理解正確理解if語句和語句和N-S選擇結(jié)構(gòu)流程圖的對應(yīng)選擇結(jié)構(gòu)流程圖的對應(yīng)關(guān)系。關(guān)系。 嵌套主要用于處理多條件的題目。設(shè)計嵌套主要用于處理多條件的題目。設(shè)計嵌套選擇結(jié)構(gòu)時,應(yīng)清晰描述各條件之間的嵌套選擇結(jié)構(gòu)時,應(yīng)清晰描述各條件之間的約束關(guān)系。嵌套的約束關(guān)系。嵌套的if語句可以簡單描述如下:語句可以簡單描述如下: 嵌入的嵌入的if語句是在當(dāng)外圍的語句是在當(dāng)外圍的
8、if語句的條件語句的條件p1的邏輯量值為的邏輯量值為1時才可以執(zhí)行,即其作為時才可以執(zhí)行,即其作為外圍外圍if語句的條件成立時的執(zhí)行語句,嵌入語句的條件成立時的執(zhí)行語句,嵌入在外圍在外圍if內(nèi)。當(dāng)然語句內(nèi)。當(dāng)然語句1、語句、語句2、語句、語句3也可也可以是以是if語句,具體的嵌套形式和具體題目中語句,具體的嵌套形式和具體題目中的多條件是密切相關(guān)的,的多條件是密切相關(guān)的, if語句的嵌套形式語句的嵌套形式應(yīng)建立在對具體問題的分析上。應(yīng)建立在對具體問題的分析上。66.22.2 if2 if語句的嵌套及多條件結(jié)構(gòu)的實現(xiàn)語句的嵌套及多條件結(jié)構(gòu)的實現(xiàn)例例66.4 4 求函數(shù)中求函數(shù)中x x為任意值時為任
9、意值時y 的值。的值。 由于由于ifif選擇結(jié)構(gòu)僅有兩個分支,而此分段選擇結(jié)構(gòu)僅有兩個分支,而此分段函數(shù)函數(shù)x x的定義域為三分支,因此當(dāng)確定的定義域為三分支,因此當(dāng)確定x x的關(guān)的關(guān)系表達(dá)式時,其中必然有一個分支包含另外系表達(dá)式時,其中必然有一個分支包含另外兩部分定義域,需在此基礎(chǔ)上作進(jìn)一步的條兩部分定義域,需在此基礎(chǔ)上作進(jìn)一步的條件判斷。件判斷。 0002/ 10/ 1xxxxx根據(jù)流程圖得到如下程序:根據(jù)流程圖得到如下程序:main() main() float x,y; float x,y; scanf(%f,&x); scanf(%f,&x); if(x0) y=1/
10、x; if(x0) y=1/x; else if(x=0) y=0; else if(xb)?a:b 的求解過程如下:此表達(dá)式右邊為一條件表達(dá)式的求解過程如下:此表達(dá)式右邊為一條件表達(dá)式,由于條件運算符的優(yōu)先級高于賦值運算符,應(yīng),由于條件運算符的優(yōu)先級高于賦值運算符,應(yīng)先計算條件表達(dá)式的值,再通過賦值運算符把得先計算條件表達(dá)式的值,再通過賦值運算符把得到的值賦給到的值賦給max。在條件表達(dá)式中,首先計算表。在條件表達(dá)式中,首先計算表達(dá)式達(dá)式ab的邏輯量值,根據(jù)題意,的邏輯量值,根據(jù)題意,ab表達(dá)式的邏表達(dá)式的邏輯量值為輯量值為1,則,則a為條件表達(dá)式的結(jié)果,為為條件表達(dá)式的結(jié)果,為5,那么,那
11、么條件表達(dá)式的值為條件表達(dá)式的值為5,可得,可得max的值為的值為5。6.3 switch6.3 switch語句語句 如果題目中的多條件是有規(guī)律的,則可以采用如果題目中的多條件是有規(guī)律的,則可以采用switch語句語句來實現(xiàn)。來實現(xiàn)。switch語句稱為分支語句,又稱為開關(guān)語句。語句稱為分支語句,又稱為開關(guān)語句。switch的具體形式如下:的具體形式如下: switch(表達(dá)式表達(dá)式) case 整型常量表達(dá)式整型常量表達(dá)式1:語句組:語句組1 break case 整型常量表達(dá)式整型常量表達(dá)式2:語句組:語句組2 break case 整型常量表達(dá)式整型常量表達(dá)式n:語句組:語句組n br
12、eak default :語句組:語句組n+1 switch,case,default和和break都是構(gòu)成多分支語句的關(guān)都是構(gòu)成多分支語句的關(guān)鍵字。鍵字。 表示表示break可有可無??捎锌蔁o。 其中表達(dá)式是任意類型的表達(dá)式,但運其中表達(dá)式是任意類型的表達(dá)式,但運算結(jié)果會自動轉(zhuǎn)換為整型。整型常量表達(dá)式算結(jié)果會自動轉(zhuǎn)換為整型。整型常量表達(dá)式只能由整型常量構(gòu)成。只能由整型常量構(gòu)成。break語句的作用是結(jié)語句的作用是結(jié)束束switch語句,執(zhí)行語句,執(zhí)行switch的后續(xù)語句。語句的后續(xù)語句。語句組可以是單條語句,也可以是多條語句,多組可以是單條語句,也可以是多條語句,多條語句無需用復(fù)合語句去表
13、示。而在條語句無需用復(fù)合語句去表示。而在ifelse結(jié)構(gòu)中的語句結(jié)構(gòu)中的語句1和語句和語句2只能是單條語句。只能是單條語句。 switch語句中的一對花括號是必須書寫語句中的一對花括號是必須書寫的,是的,是switch語句構(gòu)成的必要部分。語句構(gòu)成的必要部分。 switch語句的具體執(zhí)行過程為:根據(jù)語句的具體執(zhí)行過程為:根據(jù)switch表表達(dá)式的值,尋找達(dá)式的值,尋找switch語句的執(zhí)行入口。自上而語句的執(zhí)行入口。自上而下和下和case后的整型常量表達(dá)式的值進(jìn)行比較,如后的整型常量表達(dá)式的值進(jìn)行比較,如果相等則執(zhí)行其后的語句組,假定入口是整型常果相等則執(zhí)行其后的語句組,假定入口是整型常量表達(dá)式
14、量表達(dá)式2,那么該語句執(zhí)行語句組,那么該語句執(zhí)行語句組2,當(dāng)語句組,當(dāng)語句組2執(zhí)行完畢后,若有執(zhí)行完畢后,若有break語句,則中斷語句,則中斷switch語句語句的執(zhí)行,否則繼續(xù)執(zhí)行語句組的執(zhí)行,否則繼續(xù)執(zhí)行語句組3;如果沒有和表達(dá);如果沒有和表達(dá)式的值相匹配的整型常量表達(dá)式,則執(zhí)行式的值相匹配的整型常量表達(dá)式,則執(zhí)行default后的語句組。后的語句組。 case后的整型常量表達(dá)式的值實際上就是后的整型常量表達(dá)式的值實際上就是switch后括號內(nèi)的表達(dá)式的各種可能的取值。如后括號內(nèi)的表達(dá)式的各種可能的取值。如果能窮盡表達(dá)式各種可能的取值,則語句中可省果能窮盡表達(dá)式各種可能的取值,則語句中可
15、省去去default分支;否則最好不要省略分支;否則最好不要省略default,因為,因為default表示的是表示的是switch語句在沒有找到匹配入口語句在沒有找到匹配入口時的語句執(zhí)行入口。時的語句執(zhí)行入口。例例66.6 6 輸入一同學(xué)的成績,判斷其成績等級。輸入一同學(xué)的成績,判斷其成績等級。等級范圍為:等級范圍為:90 以上以上 等級為等級為A A 889880 等級為等級為B B779770 等級為等級為CC669660 等級為等級為D D660 以下以下 等級為等級為E E 假定成績?yōu)榧俣ǔ煽優(yōu)閟core,可以得到表達(dá)式,可以得到表達(dá)式int)(score/10)。當(dāng)表。當(dāng)表達(dá)式的值
16、為達(dá)式的值為10和和9時,對應(yīng)于時,對應(yīng)于90分以上的條件分支,為分以上的條件分支,為8時對應(yīng)時對應(yīng)于于8980分段的條件分支,以下的取值和對應(yīng)的分支可以依次分段的條件分支,以下的取值和對應(yīng)的分支可以依次類推。類推。60分以下可用分以下可用switch中中default分支來描述。程序如下:分支來描述。程序如下: main() float score; scanf(%f,&score); switch(score/10) case 10: case 9 : printf(Your score is An); break; case 8 : printf(Your score is Bn
17、); break; case 7 : printf(Your score is Cn); break; case 6 : printf(Your score is Dn); break; default : printf(Your score is En); score/10中中score得到的結(jié)果為浮點型,得到的結(jié)果為浮點型,系統(tǒng)會自動轉(zhuǎn)換為整型。常量表達(dá)式為系統(tǒng)會自動轉(zhuǎn)換為整型。常量表達(dá)式為10的分支,由于與的分支,由于與9的分支均為的分支均為A級,利用級,利用switch的特點可以不寫值為的特點可以不寫值為10的分支對應(yīng)的分支對應(yīng)的語句。的語句。使用使用switch語句應(yīng)注意以下幾點。語
18、句應(yīng)注意以下幾點。(1switch 語句中表達(dá)式可為任意類型,但運算結(jié)語句中表達(dá)式可為任意類型,但運算結(jié)果為整型。果為整型。case后的表達(dá)式必須是整型常量表達(dá)式。后的表達(dá)式必須是整型常量表達(dá)式。(2每個每個case后的常量表達(dá)式的值不能相同,否則后的常量表達(dá)式的值不能相同,否則會自相矛盾,無法判斷。會自相矛盾,無法判斷。(3case及及default的順序?qū)\行結(jié)果不產(chǎn)生影響。的順序?qū)\行結(jié)果不產(chǎn)生影響。(4若無若無break語句進(jìn)行語句進(jìn)行switch語句的強制跳出,則語句的強制跳出,則從該處順序執(zhí)行其余語句,直至跳出或執(zhí)行結(jié)束。從該處順序執(zhí)行其余語句,直至跳出或執(zhí)行結(jié)束。(5case和其后的整型常量表達(dá)式中間應(yīng)有空格和其后的整型常量表達(dá)式中間應(yīng)有空格 6.4 6.4 選擇結(jié)構(gòu)程序設(shè)計舉例選擇結(jié)構(gòu)程序設(shè)計舉例例例66.110 批發(fā)鋼材,每噸批發(fā)金額為批發(fā)鋼材,每噸批發(fā)金額為11000元,計算批元,計算
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024鋁合金材料研發(fā)與應(yīng)用項目合同范本3篇
- 二零二五年度網(wǎng)絡(luò)安全事件應(yīng)急處理與響應(yīng)計劃合同2篇
- 二零二五版辦公場地租賃信息咨詢服務(wù)合同2篇
- 2024年高端設(shè)備采購與技術(shù)轉(zhuǎn)讓合同
- 2024水磨石新型裝飾材料研發(fā)與應(yīng)用承包合同3篇
- 二零二五年度5人合伙人工智能教育培訓(xùn)合同3篇
- 二零二五年度遺產(chǎn)分配與境外遺產(chǎn)繼承協(xié)議3篇
- 二零二五年度出租車承包合同標(biāo)準(zhǔn)條款3篇
- 二零二五年度建筑安全責(zé)任協(xié)議范本解析3篇
- 2024版勞務(wù)分包合同(保潔類)2篇
- 深圳2024-2025學(xué)年度四年級第一學(xué)期期末數(shù)學(xué)試題
- 中考語文復(fù)習(xí)說話要得體
- 中風(fēng)后認(rèn)知障礙中醫(yī)臨床路徑
- 罌粟湯_朱氏集驗方卷十_方劑加減變化匯總
- 《我相信---楊培安》歌詞-勵志歌曲
- 做一個幸福班主任
- 初中班主任案例分析4篇
- 公司7s管理組織實施方案
- Q∕GDW 12147-2021 電網(wǎng)智能業(yè)務(wù)終端接入規(guī)范
- 仁愛英語單詞默寫本(全六冊)英譯漢
- 公園廣場綠地文化設(shè)施維修改造工程施工部署及進(jìn)度計劃
評論
0/150
提交評論