資源描述:
《C++ C語言 選擇控制結(jié)構(gòu)課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第五章選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符和關(guān)系表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式if語句switch語句程序舉例§5.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種。所謂“關(guān)系運(yùn)算”實(shí)際上是“比較運(yùn)算”。將兩個(gè)值進(jìn)行比較,判斷其比較的結(jié)果是否符合給定的條件。例如,a>3是一個(gè)關(guān)系表達(dá)式,“大于”號(hào)是一個(gè)關(guān)系運(yùn)算符,若a的值為5,則滿足給定的“a>3”條件,因此關(guān)系表達(dá)的值為“真”;若a的值為2,不滿足“a>3”條件,則稱關(guān)系表達(dá)式的值為“假”?!?.1.1關(guān)系運(yùn)算符及其優(yōu)先次序①<(小于)②<=(小于或等于)優(yōu)先級(jí)別相同(高)③>(大于)
2、④>=(大于或等于)⑤==(等于)優(yōu)先級(jí)別相同(低)⑥!=(不等于)C語言提供的6種關(guān)系運(yùn)算符有關(guān)關(guān)系運(yùn)算符和其它運(yùn)算符的優(yōu)先次序(1)前四種關(guān)系運(yùn)算符的優(yōu)先級(jí)別相同,后兩種相同(2)關(guān)系運(yùn)算符的優(yōu)先級(jí)別低于算術(shù)運(yùn)算符。(3)關(guān)系運(yùn)算符的優(yōu)先級(jí)別高于賦值運(yùn)算符。算術(shù)運(yùn)算符(高)關(guān)系運(yùn)算符賦值運(yùn)算符(低)§5.1.2關(guān)系表達(dá)式什么叫關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式或關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字符表達(dá)式)連接起來的式子,就叫做關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。例如:“5==2”的值為“
3、假”,“6>=0”的值為“真”。C語言沒有邏輯型數(shù)據(jù),以“1”代表“真”,以“0”代表“假”。例如,a=3,b=2,c=1關(guān)系表達(dá)式“a>b”的值為“1”。關(guān)系表達(dá)式“(a>b)==c”的值為“1”。因?yàn)椤癮>b”的值為“1”,等于c的值,所以結(jié)果為“1”。5.2邏輯運(yùn)算符和邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式和邏輯量連接起來的式子就叫做邏輯表達(dá)式。在這一節(jié)中將主要介紹如下兩部分:邏輯運(yùn)算符及其優(yōu)先次序邏輯表達(dá)式§5.2.1邏輯運(yùn)算符及其優(yōu)先次序C語言提供了如下三種邏輯運(yùn)算符:⑴&&邏輯與(相當(dāng)于其他語言中的AND)⑵
4、
5、邏輯或(相當(dāng)于其
6、他語言中的OR)⑶!邏輯非(相當(dāng)于其他語言中的NOT)“&&”和“
7、
8、”是“雙目運(yùn)算符”,它要求有兩個(gè)運(yùn)算量(操作數(shù))。例(a>b)&&(x>y),(a>b)
9、
10、(x>y)“!”是“單目運(yùn)算符”,只有一個(gè)運(yùn)算量,例如!(a>b)a&&b若a、b為真,則a&&b為真。a
11、
12、b若a、b之一為真,則a
13、
14、b為真。!a若a為真,則!a為假。若在一個(gè)邏輯表達(dá)式中包含多個(gè)邏輯運(yùn)算符時(shí),如:!a&&b
15、
16、x>&&c按如下的優(yōu)先次序:⑴(高)!→&&→
17、
18、(低)⑵邏輯運(yùn)算符中的“&&”和“
19、
20、”低于關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符。(a>b)&&(x>
21、y)可寫為a>b&&x>y(a==b)
22、
23、(x==y)可寫為a==b
24、
25、x==y(!a)
26、
27、(a>b)可寫為!a
28、
29、a>b!(非)(高)算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和
30、
31、賦值運(yùn)算符(低)5.2.2邏輯表達(dá)式如前所述,邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真”或“假”。C語言編譯系統(tǒng)在給出邏輯運(yùn)算結(jié)果時(shí),以數(shù)值1代表“真”,以0代表“假”,但在判斷一個(gè)量是否為“真”時(shí),以0代表“假”,以非0代表“真”。即將一個(gè)非零的數(shù)值認(rèn)作為“真”。具體說明如下:⑴若a=4,則!a的值為0。⑵若a=4,b=5,則a&&b的值為1。⑶a、b的值同上,a
32、
33、b的值為1
34、。⑷a、b的值同上,!a
35、
36、b的值為1。⑸4&&0
37、
38、2的值為1。通過上述幾個(gè)例子可看出,由系統(tǒng)給出的邏輯運(yùn)算結(jié)果不是0就是1,不可能是其他數(shù)值。而在邏輯表達(dá)式中作為參加運(yùn)算的運(yùn)算對(duì)象可以是0“假”或任何非0數(shù)值。如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運(yùn)算或關(guān)系運(yùn)算對(duì)象,哪些作為邏輯運(yùn)算對(duì)象。實(shí)際上,邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象不但可以是0和1,或是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù)??梢允亲址汀?shí)型或指針型等。系統(tǒng)最終以0和非0來判定它們屬于“真”或“假”。例如:‘c’&&’b’該表達(dá)式的值為1。(為什么?)在邏
39、輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符。請(qǐng)看下面的解釋:a&&b&&c只有a為真(非0)時(shí),才需要判別b的值,只有a和b都為真的情況下才需要判別c的值。只要a為假,就不必判別b和c(此時(shí)整個(gè)表達(dá)式已確定為假)。如果a為真,b為假,不用判別c。見右圖。abc1真0(假)非0(真)0(假)非0(真)0(假)非0(真)0(假)abc1真非0(真)0假非0(真)0假非0(真)0假0假⑵a
40、
41、b
42、
43、c只要a為真(非0),就不必判斷b和c;只有a為假,才判別b;a和b都為
44、假才判別c。見右圖所示也就是說,對(duì)&&運(yùn)算符來說,只有a≠0,才繼續(xù)進(jìn)行右面的運(yùn)算。對(duì)運(yùn)算符
45、
46、來說,只有a=0,才能繼續(xù)進(jìn)行其右面的運(yùn)算。如果有下面的邏輯表達(dá)式:當(dāng)a=1,b=2,c=3,d=4,m和n的