黑马程序员技术交流社区

标题: 运算符 九、逻辑运算符 [打印本页]

作者: 微凉的暮色    时间: 2015-5-31 17:31
标题: 运算符 九、逻辑运算符
逻辑运算符 !A
非关系值表
A
!A
true
false
false
true

  逻辑运算符 &&
逻辑与关系值表
A
B
A&&B
false
false
false
true
false
false
false
true
false
true
true
true
  逻辑运算符 ||
逻辑或关系值表
A
B
A||B
false
false
false
true
false
true
false
true
true
true
true
true
  实用性:
在运用逻辑运算符进行相关的操作,就不得不说“短路”现象。代码如下:
if(1==1 && 1==2 && 1==3){  }
代码从左至右执行,执行第一个逻辑表达式后:true && 1==2 && 1==3
执行第二个逻辑表达式后:true && false && 1==3
因为其中有一个表达式的值是false,可以判定整个表达式的值是false,就没有必要执行第三个表达式了,所以java虚拟机不执行1==3代码,就好像被短路掉了。
逻辑或也存在“短路”现象,当执行到有一个表达式的值为true时,整个表达式的值就为true,后面的代码就不执行了。
“短路”现象在多重判断和逻辑处理中非常有用。我们经常这样使用:


如果str为null,那么执行str.trim().length()就会报错,短路现象保证了我们的代码能够正确执行。
在书写布尔表达式时,首先处理主要条件,如果主要条件已经不满足,其他条件也就失去了处理的意义。也提高了代码的执行效率。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2