&      与  

两个运算数都为真时结果为真,只要有一个运算数为假结果就为假,否则就为真。

true & true = true  

true & false = false  

false & true = false  

false & false = false

|      或

只要有一个运算数为真,结果就为真,否则就为假。

true | true = true

true | false = true

false | true = true
false | false = false

!     非

原来为真,结果位假。原来为假,结果就为真。

! true = false

! false = true

^     异或

相同位假,不同为真。

true ^ true = false

true ^ false = true

false ^ true = true

false ^ false = false

下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假

操作符 描述 例子
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B)为真。

实例:

public class Test {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a&&b));
System.out.println("a || b = " + (a||b) );
System.out.println("!(a && b) = " + !(a && b));
}
}

运行结果:

a && b = false
a || b = true
!(a && b) = true

注意(1):

  &&:如果前边的表达式的结果为false,则后边的表达式不再运算,整个表达式的结果就确定为false。

实例:

public class YuHuo {
public static void main(String[] args) {
int a = 5;
int b = 6;
if(a++ < 4 && ++b == 7)
System.out.println(a + " , " + b); // 不输出
else
System.out.println(a + " , " + b); // 输出结果为 6 ,6
}
}

上面例子说明: && 前面的算式进行了运算,&& 后面的的运算符没有进行运算。

注意(2):

  ||   :如果前边的表达式的结果为true,则后边的表达式就不再运算,整个表达式的结果就确定为true

实例:

public class Huo {
public static void main(String[] args) {
int a = 5;
int b = 6; if(++a > 5 || ++b == 7)
System.out.println(a + " , " + b); // 输出结果:6 , 6 }
}

上面例子说明: || 前面的算式进行了运算,而 || 后面的算式没有进行运算。

注意(3):

  ||  如果在 && 的前边可以把 && 短路掉

实例:

public class Huo {
public static void main(String[] args) {
int a = 5;
int b = 6;
int c = 7; if(++a > 5 || ++b == 7 && ++c == 8 )
System.out.println(a + " , " + b + " , " + c); // 输出结果:6 , 6 , 7
}
}

上面例子说明: || 前面算式进行了运算,||  后面的算式没有进行运算 。

注意(4):

  &&  如果在 || 的前边不能把 || 短路掉

实例:

public class DuanLu {
public static void main(String[] args) {
int a = 5;
int b = 6;
int c = 7; if(++a < 5 && ++b < 6 || ++c > 7)
System.out.println(a + " , " + b + " , " + c); // 输出结果:6 , 6 , 8
}
}

上面的例子说明:++a 进行了运算,++b 被 && 短路,但是没有短路 || ,++c 进行了运算。

最新文章

  1. 安装OS X虚拟机错误vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1123
  2. Java多线程7:死锁
  3. Spring系列之依赖注入的方式
  4. Common Lisp编译程序的小技巧
  5. abap注意
  6. 多台服务器最好加上相同的machineKey
  7. hunnu 小明的烦恼——找字符串
  8. Arrays.asList的那点事
  9. php绘图-报表
  10. MySQL 替换部分电话号码为000
  11. [UIKit学习]07.关于如何选择UIButton、UILable、UIImageView
  12. A glance at endpoint security
  13. docker 小技巧 列出所有容器的IP地址
  14. H5 28-优先级之权重问题
  15. Redis学习笔记--Redis数据过期策略详解==转
  16. 实验long raw 和 blob两种数据类型遇到dblink的表现
  17. Example of Abstract Class
  18. git: error while loading shared libraries: libiconv.so.2
  19. Linux计划任务Crontab学习笔记
  20. PHP中引入文件的四种方式详解

热门文章

  1. bzoj 3197
  2. Hrbust 1535 相爱
  3. eureka -2 - 重要配置
  4. 【html5】hashchange Event – 监测URL的hash变化
  5. 消除浏览器对input输入框的自动填充
  6. web运行异常解决
  7. Composer介绍
  8. 【剑指offer】输入一颗二叉树的根节点,判断是不是平衡二叉树,C++实现
  9. java小知识点 2015/10/6
  10. BZOJ - 3223 Tyvj 1729 文艺平衡树 (splay/无旋treap)