條件,邏輯運算子

2021-10-23 16:42:46 字數 1384 閱讀 6364

1.種類

優先順序6(高)<,<=,==, > 優先順序7(低)>=,!=

2.結合方向

自左向右

3.優先級別

(1)關係表示式

用關係運算子將兩個表示式連線起來的式子

(2)關係表示式格式

表示式 關係運算子 表示式

(3)關係表示式的值:

1 表示關係成立,0 表示關係不成立

4.注意點

(1)應避免對實數(小數)做相等或不等的判斷,應該是否為乙個範圍內

因小數的精確值可能不一樣,所以不能判斷

如1.0/3.0*3.0==1.0

可改為fabs(1.0/3.0*3.0)<1e-6

例 判斷f等於3.3

double f=3.3

if(f<3.399999 && f>3.3000001)

else

結果為:yes

(2)注意區分賦值「=」和恆等於「==」

尤其是在判斷時

如if(a=b)//此時為賦值運算子,語句錯誤

(3)判斷變數b的範圍時,不能用a原理:a例:int a=4,b=6,c=5

if(aelse

輸出結果為yes,而不是no

願因a都為真才為真,(一假則假)

2.|| 邏輯或

乙個為真都為真(一真則真)

3.!邏輯非

!0為真(1), !1為假(0)

注:c語言中0為假,1為真

4.短路特性

(1)邏輯與&& 第乙個條件判斷為假(一假為假),則第二個條件不判斷 (被短路)

例1:int a=4,b=6

if(a==3 && b++=5) //a==3判斷為假,短路了後面的判斷語句,b++=5不執行

printf('%d\n',b);

輸出結果為:b=6

例2:int a=4,b=6

if(a==4 && b++=5) //a==4判斷為真,判斷語句繼續執行,b++=5。則b++為7.輸出結果為7

printf('%d\n',b);

輸出結果為:b=7

(2) 邏輯或|| 第乙個條件判斷為真(一真為真),則第二個條件不判斷(被短路)

例1:int a=4,b=6

if(a==4 || b++=5) //a==4判斷為真,短路了後面的判斷語句,b++=5不執行

printf('%d\n',b);

輸出結果為:b=6

例2:int a=4,b=6

if(a==4 && b++=4) //a==4判斷為假,判斷語句繼續執行,b++=b+1+7.輸出結果為7

printf('%d\n',b);

輸出結果為:b=7

邏輯運算子( , )

操作!是的 運算子不執行布林操作,有只有乙個運算元,位於其權利,和唯一,它確實是逆是它的價值,生產假如果真實,真實的,如果其運算元其運算元為false。基本上,它返回布林值,評價其運算元相反。例如 1 2 3 4 5 5 evaluates to false because the expressi...

邏輯運算子

邏輯運算子 符號 作用 符號 作用 或and 與 或 not 非 或or 或 xor 異或 與 運算 1 或者 and 是 與 運算的兩種表達方式。如果所有資料不為0且不為空值 null 則結果返回1 如果存在任何乙個資料為0,則結果返回0 如果存在乙個資料null且沒有資料為0,結果返回null。...

邏輯運算子

邏輯與 當兩個運算元的值都為true時,運算結果為true 邏輯或 只要兩個運算元中有乙個值為true時,運算結果就為true 邏輯非 對運算元取反,即true值非運算的結果false,false值非運算的結果為true 案例 test1 var a 1,b 0,c hello a b c worl...