資源描述:
《邏輯運算及判斷選取控制.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第四章邏輯運算和判斷選取控制4.1關(guān)系運算符和關(guān)系表達式關(guān)系運算是邏輯運算中比較簡單的一種。所謂“關(guān)系運算”實際上是“比較運算”。將兩個值進行比較,判斷比較的結(jié)果是否符合給定的條件。例如,a>3是一個關(guān)系表達式,大于號(>)是一個關(guān)系運算符4.1.1關(guān)系運算符及其優(yōu)先次序C語言提供6種關(guān)系運算符:(1)<(小于)(2)<=(小于或等于)(3)>(大于)(4)>=(大于或等于)(5)==(等于)(6)!=(不等于)關(guān)于優(yōu)先次序:1.前4種關(guān)系運算符(<,<=,>,>=)的優(yōu)先級別相同,后兩種也相同。前4種高于后2種。2.關(guān)系運算符的優(yōu)先級低于算術(shù)運算符。3.關(guān)系運算
2、符的優(yōu)先級高于賦值運算符。高→低算術(shù)運算符關(guān)系運算符賦值運算符例如:1.c>a+b等效于c>(a+b)2.a>b!=c等效于(a>b)!=c3.a=bb,a+b>b+c,(a=3)>(b=5),’a’<’b’,(a>b)>(b<c)關(guān)系表達式的值是一個邏輯值,即“真”或“假”。例如,關(guān)系表達式“5==3”的值為“假”“5>=0”的值為“真”。C語言沒有邏輯型,以1代
3、表“真”,以“0”代表“假”。例如,若a=3,b=2,c=1,則:a>b的值為”真”,表達式的值為1。(a>b)==c的值為“真”,表達式的值為1。b+c<a的值為“假”,表達式的值為0。如果有以下賦值表達式:d=a>bd的值為1。f=a>b>cf的值為0注意:數(shù)學(xué)中的22&&x<104.2邏輯運算符和邏輯表達式用邏輯運算符將關(guān)系表達式或邏輯量連接起來就是邏輯表達式。4.2.1邏輯運算符及其優(yōu)先次序C語言提供三種邏輯運算符:1.&&
4、邏輯與2.
5、
6、邏輯或3.!邏輯非說明:1.&&和
7、
8、”是“雙目(元)運算符”,它要求有兩個運算量(操作數(shù))。如(a>b)&&(x>y),(a>b)
9、
10、(x>y)。2.“!”是一目(元)運算符”,只要求有一個運算量,如?。╝>b)。邏輯運算規(guī)則如下:a&&b若a,b為真,則a&&b為真。a
11、
12、b若a,b之一為真,則a
13、
14、b為真。!a若a為真,則!a為假。下表為邏輯運算的“真值表”。用它表示當(dāng)a和b的值為不同組合時,各種邏輯運算所得到的值。ab!a!ba&&ba
15、
16、bTTFFTTTFFTFTFTTFFTFFTTFF含邏輯運算的表達式計算優(yōu)先順序:優(yōu)先次序:高→低!→算
17、術(shù)運算符→關(guān)系運算符→&&→
18、
19、→賦值運算符1)!a&&b
20、
21、x>y&&c((!a)&&b)
22、
23、((x>y)&&c)2)a>b&&x>y(a>b)&&(x>y)3)a==b
24、
25、x==y(a==b)
26、
27、(x==y)4.2.2邏輯表達式如前所述,邏輯表達式的值應(yīng)該是一個邏輯量“真”或“假”。C語言編譯系統(tǒng)在給出邏輯運算結(jié)果時,以數(shù)值1代表“真”,以0代表“假”,但在判斷一個量是否為“真”時,以0代表“假”,以非0代表“真”。即將一個非零的數(shù)值認作為“真”。①若a=4,則!a的值為0。②若a=4,b=5,則a&&b的值為1。③a、b值同前,a
28、
29、b的值為1。④a、b值同
30、前,!a
31、
32、b的值為1。⑤4&&0
33、
34、2的值為1。通過這幾個例子可以看出,由系統(tǒng)給出的邏輯運算結(jié)果不是0就是1,不可能是其它數(shù)值。而在邏輯表達式中作為參加邏輯運算的運算對象(操作數(shù))可以是0(“假”)或任何非0的數(shù)值(按“真”對待)。例如5>3&&2
35、
36、8<4-!0表達式自左至右掃描求解。實際上,邏輯運算符兩側(cè)的運算對象不但可以是0和1,或者是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù)??梢允亲址汀嵭突蛑羔樞偷?。系統(tǒng)最終以0和非0來判定它們屬于“真”或“假”。例如‘c’&&’d’的值為1(因為’c’和’d’的Ascii值都不為0,按“真”處理)。在邏輯表達式的求解
37、中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達式的解時,才執(zhí)行該運算符。例如:1.a(chǎn)&&b&&c只有a為真(非0)時,才需要判別b的值,只有a和b都為真的情況下才需要判別c的值。只要a為假,就不必判別b和c,(此時整個表達式已確定為假)。如果a為真,b為假,不判別c。2.a(chǎn)
38、
39、b
40、
41、c只要a為真(非0)就不必判別b和c對&&運算符只有a≠0,才繼續(xù)進行右面的運算。對
42、
43、運算符來說,只有a=0才繼續(xù)進行其右面的運算。如果有下面的邏輯表達式:(m=a>b)&&(n=c>d)當(dāng)a=1,b=2,c=3,d=4,m和n的原值為1由于a>b的值
44、為0,m=