Java中&和&&,|和||的区别(超详细讲解),细节请必会!

Java中&和&&,|和||的区别(超详细讲解),细节请必会!一、&是与,&&是短路与&&是左边条件不满足就终止了,不会继续计算右边条件;而&是无论左边是否满足都会继续执行右边。比如a&&b,假如计算a是假,那么就不会继续计算b的真假值了;假如a是真,那么会继续计算b,当b也是真时,a&&b为真。而a&b,无论a是真假,都会继续计算…

大家好,又见面了,我是你们的朋友全栈君。

一、& 是与,&&是短路与

  • && 是左边条件不满足就终止了,不会继续计算右边条件;而&是无论左边是否满足都会继续执行右边。
  • 比如 a && b , 假如计算 a 是假 , 那么就不会继续计算b的真假值了;假如a是真,那么会继续计算b,当b也是真时,a&&b为真。
  • 而 a & b , 无论a是真假,都会继续计算b的真假值。

二、| 是或,|| 是短路或

  • 原理内跟上面差不多,a || b 只要 a为真时,那么整个表达式就是真了,不会继续计算b的真假值。
  • 而 a | b , 无论a真假,都会继续计算b的值。

三、举例说明其区别

判断语句中为布尔类型,值只有 true 和 false(如果变量值为 0 就是 false,否则为 true)

举个例子,a=1 b=2
所以 a>0 这个值为true b>1 这个值为true b>2 这个值为 false
如 if(a>0&b>1) 我们可以得出 if(true&true),条件成立(true不为0,所以true&true不为0)
如 if(a>0&&b>1) 我们可以得出 if(true&&true),条件成立(&&两边操作数都非零,所以条件成立)
如 if(b>2&a>0) 我们可以得出 if(false&true),条件不成立(false为0,false&true为0,条件不成立)
如 if(b>2&&a>0) 我们可以得出 if(false&&a>0),条件不成立(&&左侧为false,&&运算到此结束,条件不成立)

可以看出 & 和 && 在判断语句中都可以实现“和”这个功能,不过区别在于 & 两边都运算,而 && 先算 && 左侧,若左侧为 false 那么右侧就不运算了。因此从效率上来说,判断语句中推荐使用 &&(换句话就是逻辑运算就老老实实用逻辑运算符,不然它为啥叫逻辑运算符呢?)
而 | 和 || 的比较与上类似,不做赘述。

总结:一般用 && 和 || 的较多

四、另外, & 和 | 还用于位运算中

  • & 按位与操作,按二进制位进行”与”运算。运算规则:(有 0 则为 0)
0&0=0;   
0&1=0;    
1&0=0;     
1&1=1;
  • | 按位或运算符,按二进制位进行”或”运算。运算规则:(有 1 则为 1)
0|0=0;   
0|1=1;   
1|0=1;    
1|1=1;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156512.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 【期末复习】微机原理与接口技术

    【期末复习】微机原理与接口技术知识重点整理第一章输入/输出系统1.接口电路的作用和基本功能接口电路是CPU与外设交换信息的中转站。接口电路应具备的功能为:数据缓冲功能、联络功能、寻址功能、数据转换功能、中断管理功能。2.端口的概念和分类端口是接口电路中能与CPU直接进行信息交换的寄存器,即I/O端口寄存器。在接口电路中,按端口寄存器存放信息的物理意义可划分为数据端口、控制端口和状态端口:数据端…

    2022年10月2日
  • ASF(传感器)

    ASF(传感器)

    2022年1月14日
  • mac全选文字的快捷键_关于mac文本的快捷键你知道多少?[通俗易懂]

    mac全选文字的快捷键_关于mac文本的快捷键你知道多少?[通俗易懂]用惯了windows系统的小伙伴,对于苹果的快捷键一定很不习惯。所以贴心的小编为大家准备了关于mac打字的快捷键你知道多少?用习惯了苹果的快捷键也是非常好用的哦!在电脑的操作过程中,快捷键是非常主要的,为您节省了很多不必要的时间,提高了工作的效率,下面就和小编一起来看一看有哪些好用的快捷键吧!关于mac的快捷键你知道多少?:cmd+c。复制cmd+v。粘贴cmd+a。全选cmd+tab。切换程序s…

    2022年5月26日
  • 嵌入式实时操作系统UCOSII[通俗易懂]

    嵌入式实时操作系统UCOSII[通俗易懂]何谓操作系统1.什么是操作系统?操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。介于APP和硬件之间。2. 为什么要用操作系统?1)相比裸机,可以实现更加复杂的功能。2)屏蔽硬件。使得上层应用APP的移植性更好。常见操作系统常见操作系统安卓、IOS、Windows、Linux、塞班、V…

    2022年5月4日
  • C–C语言中volatile关键字的作用[通俗易懂]

    C–C语言中volatile关键字的作用[通俗易懂]转载:http://blog.csdn.net/tigerjibo/article/details/7427366一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高

    2022年5月8日
  • OSPF路由协议_ospf协议是一种什么路由协议

    OSPF路由协议_ospf协议是一种什么路由协议OSPF:开放式最短路径优先协议无类别链路状态路由协议,组播更新224.0.0.5/6;跨层封装到三层,协议号89;基于拓扑工作,故更新量大—–需要结构化部署–区域划分、地址规划触发更新、每30min周期更新OSPF的数据包:Hello包DBD–数据库描述包LSR–链路状态请求LSU–链路状态更新携带各种LSALSack–链路状态确认状态机—-OSP…

    2022年10月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号