Java 中与(&)短路与(&&)以及 或(|)短路或(||)的关系
&与&&,|与||的区别并不会影响整个表达式判断的结果,但是如果左边的条件足够判断结果的话则不会对右边的条件执行判断。
public class Test {
public static void main(String[] args) {
System.out.println(true & false);//结果为false
System.out.println(true & true);//结果为true
System.out.println(false & false);//结果为false
System.out.println(false & true);//结果为false
System.out.println(true && false);//结果为false
System.out.println(true && true);//结果为true
System.out.println(false && false);//结果为false
System.out.println(false && true);//结果为false
System.out.println(true | false);//结果为true
System.out.println(true | true);//结果为true
System.out.println(false | false);//结果为false
System.out.println(false | true);//结果为true
System.out.println(true || false);//结果为true
System.out.println(true || true);//结果为true
System.out.println(false || false);//结果为false
System.out.println(false || true);//结果为true
System.out.println("=================================");
int i = 1;
System.out.println("false & i++==1:" + (false & i++ == 1));
System.out.println("false & i++==1 后i的值:" + i);
i = 1;
System.out.println("false && i++==1:" + (false && i++ == 1));
System.out.println("false && i++==1 后i的值:" + i);
}
}
运行结果如下