与: 金库 需要两个人同时在场,同时带着钥匙,才可以打开,缺一不可
&& 同真为真,有假即假
或: 自己家门 不管谁带有钥匙都可以开门,但是如果都没带,就GG了
|| 有真即真,同假为假
非: 取反
! 真变假来,假变真
【断路原则】
面试题:
1. int num = 5;
boolean ret = num > 4 && num++ > 5
ret ? num ?
解释:
ret = false; num = 6;
num++ > 5 首先会执行判断然num和5比较,然后再来做自增
num > 5 结果为false
所以整个表达式为false
2. int num = 5;
boolean ret = num > 5 && num++ > 4;
ret ? num ?
解释:
ret = false; num = 5;
在逻辑与运算符的左侧,已经确定当前整个逻辑与的表达式值为false
在右侧的num++ > 4 就是无意义的,计算机不会在执行num++ > 4的
判断。没有执行,所有num的值就不会改变。
3. int num = 5;
boolean ret = num > 5 || num++ > 5;
ret ? num?
ret = false; num = 6;
4. int num = 5;
boolean ret = num > 3 || ++num > 3;
ret ? num ?
ret = true; num = 5;
【拓展】
在计算机中,默认的真假关系,从原理上来说,是 1(真) 和 0(假)
在计算机中,非 0 即 真
true 0000 0001
false 0000 0000
一下内容不适用Java,但是适用于 C/C++ OC PHP
面试题:
请用最直观的表示式,描述以下语句的含义
前提:n是一个int类型的变量
!n的含义
n = 1; !n => false
n = 2; !n => false
n = 0; !n => true;
!n是用来判断当前变量n的值是否为0。用其他表达式展示
n == 0