短路与&&(或 ||)和非短路与&(或 |)的区别
A&&B, 当A为false时,不去计算B的值而直接返回false;当A为true时,计算B的值。
例子:
public static void main(String[] args){
int a=10, b=20;
System.out.println("原始a="+a);
System.out.println("原始b="+b);
boolean bool;
if(a++==11 && b++==21) {
System.out.println("true");
System.out.println("a="+a);
System.out.println("b="+b);
} else {
System.out.println("false");
System.out.println("a="+a);
System.out.println("b="+b);
}
}
输出结果:
原始a=10
原始b=20
false
a=11
b=20(注意这里,b的值并没有改变)
非短路与是JAVA语言中的一个逻辑运算符,记作&
A&&B, 当A为false时,继续计算B的值而不直接返回false(与短路与相比较?)
例子:
public static void main(String[] args){
int a=10, b=20;
System.out.println("原始a="+a);
System.out.println("原始b="+b);
boolean bool;
if(a++==11 & b++==21) {
System.out.println("true");
System.out.println("a="+a);
System.out.println("b="+b);
} else {
System.out.println("false");
System.out.println("a="+a);
System.out.println("b="+b);
}
}
输出结果:
原始a=10
原始b=20
false
a=11
b=21(注意这里,b的值已经变化了)
短路或和非短路或的区别,可以自己去验证!!!
以上就是短路与&&(或 ||)和非短路与&(或 |)的区别的详细内容,更多请关注其它相关文章!