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;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • HttpSession的正确理解

    HttpSession的正确理解一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第一个请求开始,而以用户显式结束或session超时为结束。其工作原理是这样的:当一个用户向服务器发送第一个请求时,服务器为其建立一个session,并为此session创建一个标识号;这个用户随后的所有请求都应包括这个标识号。服务器会校对这个标识号以判断请求属于…

  • linux下面的解压缩文件的命令[通俗易懂]

    linux下面的解压缩文件的命令[通俗易懂]尝试去好好用linux、新手起步。这边只会提到我用过的、其他相关的以后我用到了我会补充的。如果有错欢迎指正注:1、c-创建-create  2、v-复杂输出 3、f-文件-file4、x-解压-extract5、z-gz格式  66666、真不会用语法的就使用man…例如mantar他就会给你现实tar的一些参数操作…

  • 兴师动众解决由cookie引发的400报错问题

    兴师动众解决由cookie引发的400报错问题背景是这样的,做的是一个机票的购票业务,包括了购票(单程购票和往返购票)等功能。购票的航班信息需要从航班搜索页带到下单页,所以在跳转至下单页前将航班信息存在了cookie,用于在下单页展示所选航班信息。遇到的问题是购买单程机票的时候,一切流程正常(从航班查询页,选择需要的购买的航班,进入到下单页,进行下单操作);但是购买往返机票的时候,进入到下单页时,发现下单页所有接口都报了400的错误,继而再访问该网站的其他页面也都报了400的错误。一般来说400报错是因为前后端参数格式或者请求头不一致导致的问题,前.

  • phpstorm激活码2022.01(注册激活)

    (phpstorm激活码2022.01)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • Shell 语法

    Shell 语法1、Shell环境hell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux的Shell种类众多,常见的有:Bourne

  • navicat premium激活码_在线激活

    (navicat premium激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~08…

发表回复

您的电子邮箱地址不会被公开。

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