Java逻辑运算符

开发工具与关键技术:Java、myEclipse
作者:吴晓佩
撰写时间:2019年4月22日

逻辑:可以理解为是一种关系。
逻辑运算符有:&&、&、||、|、!、^
逻辑运算符除了运算符(!)外,其他都是用于连接两个boolean类型的表达式。

&&:与,前后两个操作数必须都是true才返回true,否则返回false。
& :不短路与,只有两边都为 true 结果是 true 。否则就是 false 。

& 和 &&区别:
1、& :无论左边结果是什么,右边都参与运算。 &&: 短路与 ,如果左边为 false ,那么右边不参数与运算。
2、例如下图所示,a,b的初始值都是6,并且进行了除逻辑运算符不同之外,其他操作都相同的操作,但是结果却产生了if条件返回的结果都为false,而a等于6,b却等于7。我们先看相关a的操作,a>8即6>8是不存在的,所以该条件返回的是false结果,又因为&&前后两个操作符都必须是true才返回true,则该if条件已判断出false结果,整个if条件的结果即是false,&&产生短路,已判断出结果,停止运行,所以a++<7这一步没有运行,a的值依旧是6。相关b操作,b>8即6>8是不存在的,所以该条件返回的是false结果,又因为&前后两个操作符都必须是true才返回true,则该if条件已判断出false结果,整个if条件的结果即是false。但是&不会产生短路,虽然整个条件的结果已经为false,但是该程序依旧会往下执行判断,则b++<7这一步已经运行,所以b的值为7。
Java逻辑运算符
||:逻辑或操作符。只要条件中存在真(true),条件为真。
| :不短路。只要两边都为 false 结果是 false ,否则就是 true。

| 和|| 区别:
1、| :无论左边结果如何,右边都进行运算。 || :短路或 ,如果左边为 true ,那么右边不参与运算。
2、例如下图所示,该图解说明与上图的图解说明很相似。a,b的初始值都是6,并且进行了除逻辑运算符不同之外,其他操作都相同的操作,但是结果却产生了if条件返回的结果都为true,而a等于6,b却等于7。我们先看相关a的操作,a>5即6>5是存在的,所以该条件返回的是true结果,又因为||只要条件中存在真(true),条件为真,则该if条件已判断出true结果,整个if条件的结果即是true,||产生短路,已判断出结果,停止运行,所以a++<7这一步没有运行,a的值依旧是6。相关b操作,b>5即6>5是存在的,所以该条件返回的是true结果,又因为&只要条件中存在真(true),则该if条件已判断出true结果,整个if条件的结果即是true。但是|不会产生短路,虽然整个条件的结果已经判断出结果为true,但是该程序依旧会往下执行判断,则b++<7这一步已经运行,所以b的值为7。
Java逻辑运算符
!:逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将 得到false。
^: 异或:和或有点不一样。 两边结果一样,就为 false 。 两边结果不一样,就为 true.