14 邏輯運算子

2021-09-24 17:00:35 字數 782 閱讀 2399

1、邏輯與&&和邏輯或 ||

首先看乙個程式

#include int main()

易錯點:因為很多人會覺得&& 運算的優先順序是要比 || 要高的,所以很多人會先對後半部分先進行運算,導致得出結論:i= 0,j = 1,k = 1。

短路規則:

—— ||從左向右開始計算

當遇到真時立即停止計算,整個表示式為真;當所有表示式都為假時,才為假。

—— &&從左向右開始計算

當遇到假的條件時停止計算,整個表示式為假;當所有表示式都為真時,才為假。

所以,上面分析錯誤的原因在於它沒有遵循短路規則裡面的從左向右開始計算。應該先計算 || 的表示式,左邊為真,右邊可以不進行計算,所以i= 1,j = 0,k = 0 。

對於&&和 || 的混合運算,

—— 整個表示式被看做 || 表示式

—— 從左向右開始計算&&表示式

—— 最後計算 || 表示式

++i || ++j && ++k可以轉換成(true&&++i)||(++j && ++k ),當前面的表示式為真時,後面的表示式可以不用計算。

在此糾正一下:&& 運算的優先順序是要比 || 要高,並不是兩個一起混合運算先算&&,而是先把他們轉化為 || 表示式,在這個基礎上先算&&。

2、邏輯非 !

遇 0 返回 1,否則統統返回 0

邏輯運算子( , )

操作!是的 運算子不執行布林操作,有只有乙個運算元,位於其權利,和唯一,它確實是逆是它的價值,生產假如果真實,真實的,如果其運算元其運算元為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...