《C程序設計第6章選擇結構程序設計.ppt》由會員分享,可在線閱讀,更多相關《C程序設計第6章選擇結構程序設計.ppt(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第6章選擇結構程序設計,選擇結構的N-S流程圖如圖6.1所示。,,圖6.1選擇結構的N-S流程圖,P為選擇的條件,對于執(zhí)行A還是B要根據(jù)條件P的判斷結果來決定,如果條件P的結果為真則執(zhí)行A,如果條件P的結果為假則執(zhí)行B。這里條件P的結果就成為執(zhí)行A還是B的關鍵所在。P是一個判斷的條件,其結果為真或者假,將其稱為“邏輯量”。C語言中沒有提供邏輯型變量,可以使用整型數(shù)據(jù)去描述1表示真,0表示假。在C語言中任意確定的值都可作為邏輯量處理,當作為邏輯量處理時,如果該值為非0,則表示真(1),如果該值為0,則表示假(0)。下面講述條件P的邏輯量表示方法。,6.1邏輯量的表示方法6.2if語句6.3switch語句6.4選擇結構程序設計舉例,6.1邏輯量的表示方法C語言中邏輯量是用整型數(shù)據(jù)來表示的,用1來表示真或成立,用0來表示假或不成立。邏輯量的表示是非常靈活的,具體表示方法有以下幾種方式。,6.1.1關系表達式,1.關系運算符關系運算是一種比較運算符兩側運算對象大小的運算,完成兩個運算對象比較,運算結果為成立與不成立,用1和0表示。關系運算符有以下6種:>,>=,<,b,3+7!=10,a>aa++>(b=a++)都是合法的C語言關系表達式。關系表達式的求解遵循表達式求解規(guī)則,關系運算的結果只有兩種可能,要么關系成立為真(1),要么關系不成立為假(0)。,例如有整型變量a,b,且a?3,b?5,求解表達式:a?b>a算術運算符“?”的優(yōu)先級高于關系運算符“>”,因此先計算a?b的值為8,之后運算8>a,而a參加運算時需轉換為整型數(shù)97運算,實際運算的是8>97,判斷后其結果為不成立,表達式的運算結果為0。若有關系表達式0
b的邏輯量值,根據(jù)題意,a>b表達式的邏輯量值為1,則a為條件表達式的結果,為5,那么條件表達式的值為5,可得max的值為5。,6.3switch語句,如果題目中的多條件是有規(guī)律的,則可以采用switch語句來實現(xiàn)。switch語句稱為分支語句,又稱為開關語句。switch的具體形式如下:switch(表達式){case整型常量表達式1:語句組1[break]case整型常量表達式2:語句組2[break]case整型常量表達式n:語句組n[break]default:語句組n+1}switch,case,default和break都是構成多分支語句的關鍵字。[]表示break可有可無。,其中表達式是任意類型的表達式,但運算結果會自動轉換為整型。整型常量表達式只能由整型常量構成。break語句的作用是結束switch語句,執(zhí)行switch的后續(xù)語句。語句組可以是單條語句,也可以是多條語句,多條語句無需用復合語句去表示。而在if~else結構中的語句1和語句2只能是單條語句。switch語句中的一對花括號是必須書寫的,是switch語句構成的必要部分。,switch語句的具體執(zhí)行過程為:根據(jù)switch表達式的值,尋找switch語句的執(zhí)行入口。自上而下和case后的整型常量表達式的值進行比較,如果相等則執(zhí)行其后的語句組,假定入口是整型常量表達式2,那么該語句執(zhí)行語句組2,當語句組2執(zhí)行完畢后,若有break語句,則中斷switch語句的執(zhí)行,否則繼續(xù)執(zhí)行語句組3;如果沒有和表達式的值相匹配的整型常量表達式,則執(zhí)行default后的語句組。case后的整型常量表達式的值實際上就是switch后括號內的表達式的各種可能的取值。如果能窮盡表達式各種可能的取值,則語句中可省去default分支;否則最好不要省略default,因為default表示的是switch語句在沒有找到匹配入口時的語句執(zhí)行入口。,例6.6輸入一同學的成績,判斷其成績等級。等級范圍為:90以上等級為A89~80等級為B79~70等級為C69~60等級為D60以下等級為E,假定成績?yōu)閟core,可以得到表達式(int)(score/10)。當表達式的值為10和9時,對應于90分以上的條件分支,為8時對應于89~80分段的條件分支,以下的取值和對應的分支可以依次類推。60分以下可用switch中default分支來描述。程序如下:main(){floatscore;scanf("%f",}},score/10中score得到的結果為浮點型,系統(tǒng)會自動轉換為整型。常量表達式為10的分支,由于與9的分支均為A級,利用switch的特點可以不寫值為10的分支對應的語句。,使用switch語句應注意以下幾點。(1)switch語句中表達式可為任意類型,但運算結果為整型。case后的表達式必須是整型常量表達式。(2)每個case后的常量表達式的值不能相同,否則會自相矛盾,無法判斷。(3)case及default的順序對運行結果不產(chǎn)生影響。(4)若無break語句進行switch語句的強制跳出,則從該處順序執(zhí)行其余語句,直至跳出或執(zhí)行結束。(5)case和其后的整型常量表達式中間應有空格,6.4選擇結構程序設計舉例,例6.10批發(fā)鋼材,每噸批發(fā)金額為1000元,計算批發(fā)金額,批發(fā)折扣如表6-3所示。表6-3例6.10折扣表1表6-4例6.10折扣規(guī)律表1,main(){floatt,d,m;scanf("%f",/*\x9d是字符¥的ASCII碼*/},main(){floatt,d,m;scanf("%f",},
鏈接地址:http://m.italysoccerbets.com/p-12805486.html