java &和&& 以及 |和 ||之间的异同点
一、&(逻辑与)与&&(短路与)
(1)相同点:用于判断时,判定条件全为true,返回true;倘若一个条件未false,返回false。
(2)不同点:
a、& 可用于位运算。
b、&& 判断时,若当前判定条件为false,则直接返回判定结果为false,不在进行后续的判定。
c、& 判断时,所有判定条件执行完成后,再返回判断结果。
例1:
int i = 2;
int j = 1;
if (i++ == 3 & j-- == 0){
System.out.println("进入循环");
}
System.out.println(i +" " + j);
输出结果为: 3 0
例2:
int i = 2;
int j = 1;
if (i++ == 3 && j-- == 0){
System.out.println("进入循环");
}
System.out.println(i +" " + j);
输出结果为: 3 1
二、|(逻辑或)与||(短路或)
(1)相同点:用于判断时,判定条件中任一条件为true,返回true。
(2)不同点:
a、| 可用于位运算。
b、|| 判断时,若当前判定条件为true,则直接返回判定结果为true,不在进行后续的判定。
c、| 判断时,所有判定条件执行完成后,再返回判断结果。
例3:
int i = 2;
int j = 1;
if (i++ == 2 || j-- == 0){
System.out.println("进入循环");
}
System.out.println(i +" " + j);
输出结果:
进入循环
3 1
例4:
int i = 2;
int j = 1;
if (i++ == 2 || j-- == 0){
System.out.println("进入循环");
}
System.out.println(i +" " + j);
输出结果:
进入循环
3 0