有一个参考例子:
这里有一个灯泡,两个开关,0表示关(假),1表示开(真),条件为真表示开,条件为假表示关
1、异或运算 ^
同为假,异为真
0^0、1^1 ,条件为假,灯泡不亮
0^1 ,条件为真,灯泡亮了
2、与运算 &
同为真,异为假
0&0、1&1 ,条件为真,灯泡亮了
0&1 , 条件为假,灯泡不亮
3、非运算 ~
取反
1~ =0 ,(1为真,1~表示假)
0~ =1,1表示开灯
4、或运算 |
满足一个条件即为真
0 | 1,因为1为真,此运算也为真
1 | 1,真
0 | 0,0为假,此运算为假
以上都为位运算符,接下来看看短路运算符
1、逻辑与 && (要两边条件同时成立,判断式返回true)
只有前面条件为真,才会继续判断;不为真,直接返回假
1>2 && 2>1, 返回false
先执行1>2,条件为假,直接返回假,后面的2>1,不判断
2>1 && 1>2,返回false
先执行2>1,条件为真,继续判断,1>2,条件为假,返回false
2>1 && 1<2,返回true
先执行2>1,条件为真,继续判断,1<2,条件为真,返回true
2、逻辑或 || (只要有一个条件成立,判断式就返回true)
当前面的条件为真,直接返回真,后面的不再判断;当前面的条件为假,才会继续判断
1>2 || 2>1, 返回true
先执行1>2,条件为假,继续判断,2>1,条件为真,返回true
2>1 || 1>2,返回true
先执行2>1,条件为真,返回true,后面判断,不再执行
2<1 || 1>2,返回false
先执行2<1,条件为假,继续判断,1>2,条件为假,返回false
短路运算与位运算相比,效率更高,用于判断很方便