Java中&、|、&&、||详解

Java中&、|、&&、||详解1、Java中&叫做按位与,&&叫做短路与,它们的区别是:&既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:12&5的值是多少?答:12转成二进制数是1100(前四…

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

1、Java中&叫做按位与,&&叫做短路与,它们的区别是:

& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:

12&5 的值是多少?答:12转成二进制数是1100(前四位省略了),5转成二进制数是0101,则运算后的结果为0100即4 这是两侧为数值时;

若 int i = 2,j = 4;则(++i==2)&(j++==4)的结果为false,其过程是这样的:先判断++i=2是否成立,这里当然是不成立了(3 == 2),但是程序还会继续判断下一个表达式是否成立,j++==4 ,该表达式是成立的,但是&运算符要求运算符两侧的值都为真,结果才为真,所以(++i==2)&(j++==4)的结果为 false 注意 :&为真的条件是两侧表达式都为真,但是即使我们判断出左侧表达式的值为false,程序也还是要继续执行去判断右侧的表达式值的真假

若 int i = 2,j = 4;则(++i==2)&&(j++==4)的结果为false,其过程基本上和上面的是相同的,但是若左侧表达式的值为false时,程序则不会继续判断右侧表达式的真假了,短路与中,短路这个词大概也就是这个意思吧

2、Java中‘|’与‘||’的区别

int i=0;
if(3>2 || (i++)>1) i=i+1;
System.out.println(i);

这段程序会打印出1,而不是打印出2。
因为在if的条件判断中,程序先判断第一个表达式3>2是否成立,结果3>2为真,那么按照逻辑来说,无论后面一个表达式(i++)>1是否成立,整个或表达式肯定为真,因此程序就不去执行判断后面一个表达式即(i++)>1了,所以这里i并没有自增1。然后程序执行到i=i+1,于是i变为1。最后打印出1。

int i=0;
if(3>2 | (i++)>1) i=i+1;
System.out.println(i);

如果换做这样写,那么就是打印出2了,因为无论第一个条件3>2是否为真,程序都会去执行判断第二个条件表达式,因此i++这个自增是会被执行的,再加上if内的i=i+1,所以最终i=2。

有些人习惯把||叫做短路或,把&&叫做短路与。&&和&的区别和||与|的区别类似,对于&&来说,如果前面的条件表达式已经为假了,整个条件表达式肯定为假,就不会去执行判断后面的条件表达式。

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

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

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

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

(0)


相关推荐

  • PLSQL 安装教程「建议收藏」

    PLSQL 安装教程「建议收藏」PLSQL安装教程1、首先要有oracle数据库或者有oracle服务器,才可以实现使用PLSQLDeveloper工具连接到oracle数据库进行开发.2、新建文件夹,将客户端文件放到里面D:\khd\instantclient_11_2,在文件夹instantclient_11_2中自己新建NETWORK文件夹,进入NETWORK文件夹新建ADMIN文件夹,将tnsn…

  • 【Spring Boot 20,孙鑫Java视频教程百度网盘

    【Spring Boot 20,孙鑫Java视频教程百度网盘=============================(一)引入依赖<?xmlversion=”1.0″encoding=”UTF-8″?><projectxmlns=”http://maven.apache.org/POM/4.0.0″xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”xsi:schemaLocation=”http://maven.apache.or

  • lombok几个基本注解的使用@Data@AllArgsConstructor@NoArgsConstructor@Builder

    lombok几个基本注解的使用@Data@AllArgsConstructor@NoArgsConstructor@Builderlombok是一款在java开发中简洁化代码十分有用的插件工具,这篇博客对较为常用的几种注解进行记录,分享学习心得。使用lombok注解,目的和作用就在于不用再去写经常反复去写的(如Getter,Setter,Constructor等)一些代码了。首先,用到的几个注解:@Data使用这个注解,就不用再去手写Getter,Setter,equals,canEqual,hasCode,toS…

    2022年10月18日
  • internal server error是什么意思?

    internal server error是什么意思?internalservererror错误通常发生在用户访问网页的时候发生,该错误的意思是因特网服务错误。能够引起internalservererror报错的原因有多个,如果你是网站主的话,可以对下列情形进行一一排查。  1.服务器资源超载。如果网站文件没有做过修改,最有可能的是同服务器的资源超载:即同一时间内处理器有太多的进程需要处理的时候,会出现500错误。借助SSH,可以在命令行中输入以下命令查看:psfauxpsfaux|grepusername如果你查到某个进程消耗过多资源,

  • fat文件系统中,文件的物理结构_磁盘的文件系统结构

    fat文件系统中,文件的物理结构_磁盘的文件系统结构在这个系类的开篇还是先说一下文件系统是什么吧。首先来介绍一下对u盘的格式化这个操作,格式化不是仅仅删除了所有文件,还为接下的来文件存储约定了一种存放格式,这种约定的文件存放格式就叫做文件系统。再用最通俗的说法简要介绍一下,磁盘如sd卡只能存放0和1这两种二进制状态序列,数字文件本质上也是一串0和1的序列。那么磁盘存储文件怎么存放呢?你说这个简单,把一个个的文件紧挨着排列在磁盘中不就可以了吗。那么,…

    2022年10月31日
  • 解二元微分通解和特解的关系,量子力学中的奇异点分析与高数中通解与特解的关系

    解二元微分通解和特解的关系,量子力学中的奇异点分析与高数中通解与特解的关系解二元微分通解和特解的关系,量子力学中的奇异点分析与高数中通解与特解的关系

发表回复

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

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