Java中,&&与&,||与|的区别
逻辑运算符(Java中)有四类:
&&(短路与),&
||(短路或), |
符号为:&&。
A&&B, 当A为false时,不去计算B的值而直接返回false;当A为true时,计算B的值。(来自百度百科)
而A&B,需要计算A和B的值才会返回值。
简单的来说:
&&和&都是表示与,区别是&&若第一个条件不满足,后面条件就不再判断。而&要对所有的条件都进行判断。
例1
public class Demo{ public static void main(String[] args) { int i = 4; if ((i++ > 6) & (i++ < 9)) { System.out.println(i); System.out.println("if为真"); } System.out.println(i); } }
运行结果为 : 6
因为 i 自加两次。
例2:
public class Demo{ public static void main(String[] args) { int i = 4; if ((i++ > 6) && (i++ < 9)) { System.out.println(i); System.out.println("if为真"); } System.out.println(i); } }
运行结果为 : 5
因为 i 自加一次。
同理,| 和 || 也是类似情况。
百度百科:
短路或是JAVA语言中的一个逻辑运算符,记作||。所谓短路,即在第一项为true的情况下,不再进行第二项的判断。
a||b:只有a与b都为false,结果才为false;有一个为true,结果为true。
简单的来说:
|| 和 | 都是表示与,区别是 || 若第一个条件不满足,后面条件就不再判断。而 | 要对所有的条件都进行判断。