当前位置:网站首页>& 和 &&、| 和 || 的区别
& 和 &&、| 和 || 的区别
2022-07-24 08:56:00 【魔莫摸墨】
在日常编码中,我们常用的是 && 和 || ,很少会用到 & 和 | 这两个逻辑运算符,今天就简单讲讲它们两两之间的差别,一个小知识点,很简单,看了就会懂。
目录
1、逻辑运算符
| 序号 | 逻辑运算符 | 描述 | 序号 | 逻辑运算符 | 描述 |
| 1 | & | AND,与 | 3 | | | OR,或 |
| 2 | && | 短路与 | 4 | || | 短路或 |
2、& 与 && 的区别
对于 & 来说,要求所有的条件都判断;使用 &&, 如果第一个条件为 false,则后面的条件将不再判断。(下面的代码将验证以上观点)
测试代码 1 :观察被除数为 0 的情况
package second;
public class second1 {
public static void main(String[] args)
{
int x=10/0; //定义变量
System.out.println("x="+x); // 错误,被除数为 0
}
}
程序执行结果:

造成以上问题的根本原因在于被除数为 0 。下面为读者进一步讲解 & 与 && 的区别。
测试代码 2 :验证 & 的作用
package second;
public class second1 {
public static void main(String[] args)
{
if((10!=10)&(10/0==0)) {
System.out.println("条件满足");
}
}
}
程序执行结果:
![]()
造成上面错误的原因在于操作要把上面两个条件都进行了判断,当判断 (10/0==0)条件时,发生了错误。我们再来看看将 & 改为 && 的情况,见下面的代码。
测试代码 3 :验证 && 的作用
package second;
public class second1 {
public static void main(String[] args)
{
if((10!=10)&&(10/0==0)) {
System.out.println("条件满足");
}
}
}
改为 && 连接两个条件时,就没有报错了。因为 (10!=10) 条件不满足,后面的 (10/0==0) 条件就直接不会再判断了,这就是 && 的作用。
3、| 和 || 的区别
对于 | 来说,要求所有的条件都判断;使用 || ,如果第一个条件为true,则后面的条件将不再判断。(下面的代码将验证以上观点)
测试代码 4 :验证 | 的作用
package second;
public class second1 {
public static void main(String[] args)
{
if((10==10)|(10/0==0)) {
System.out.println("条件满足");
}
}
}
程序执行结果:
![]()
结果出现了报错,原理与 & 相似,使用 | ,将 (10==10)条件判断后,(10/0==0)也会被判断,除 0 出现了错误。我们再来看看 将 | 改为 || 的效果,见下面的效果。
测试代码 5 :验证 || 的作用
package second;
public class second1 {
public static void main(String[] args)
{
if((10==10)||(10/0==0)) {
System.out.println("条件满足");
}
}
}
程序执行结果:

由结果可得,if 条件中只判断了 (10==10)这个条件,在确定条件(10==10)是true的,因为是 || 连接两个条件,就没有判断后面的条件了。
差不多就是这些了,感觉还是挺好理解的,但是建议大家在日常编码中还是多用 && 和 || 吧,更加保险一些。最后,有什么问题,欢迎评论区留言哦~~
边栏推荐
猜你喜欢

office回退版本,从2021到2019

Typora提示【This beta version of Typora is expired, please download and install a newer version】的解决方案
![[translation] integration challenges in microservice architecture using grpc and rest](/img/88/53f4c2061b538b3201475ba51449ff.jpg)
[translation] integration challenges in microservice architecture using grpc and rest

xtrabackup 实现mysql的全量备份与增量备份
![[Shangshui Shuo series together] June summary +no anxiety +july plan + how to test + how to improve](/img/75/e8f5a1dfe7594b75b6c7facb49ccfa.png)
[Shangshui Shuo series together] June summary +no anxiety +july plan + how to test + how to improve

Rk3566 add project under external

Houdini notes

【汇编语言实战】(二)、编写一程序计算表达式w=v-(x+y+z-51)的值(含代码、过程截图)

On express framework

Why is TCP a triple handshake
随机推荐
Protocol buffers 的问题和滥用
3587. Connected graph (Jilin University postgraduate entrance examination machine test question)
Advantages of using partitions
Xtrabackup realizes full backup and incremental backup of MySQL
Beandefinition three ways to load beans
Source code analysis of BlockingQueue (arraybq and linkedbq)
【FFH】实时聊天室之WebSocket实战
What is the "age limit" on tiktok and how to solve it?
Data collection solution for forestry survey and patrol inspection
mysql URL
Paclitaxel loaded tpgs reduced albumin nanoparticles /ga-hsa gambogic acid human serum protein nanoparticles
Publish your own library on NPM
【汇编语言实战】一元二次方程ax2+bx+c=0求解(含源码与过程截屏,可修改参数)
我们说的组件自定义事件到底是什么?
看了纪录片《埃达克岛的海盗宝藏》,想到我国历史上的遗失秘宝
Porting boa server on imx6ull
Treap
Local warehouse associated with remote warehouse
JS string interception
如何将CAD文件导入图新地球中,与影像地形倾斜模型准确叠加