逻辑与(&)、短路与(&&)、逻辑或(|)、短路或(||)
逻辑与(&)、短路与(&&)、逻辑或(|)、短路或(||)的区别
&
和|
:所有条件都会进行判断&&
:遇到结果为false时不再进行向下判断||
:遇到结果为true时不再进行向下判断
逻辑与(&)
public class Hello {
public static void main(String[] args) {
int i = 3 ;
boolean flag = (i>10) & (i++)<5;
System.out.println(flag);
System.out.println(i);
}
}
由于&
会判断所有的条件,所以i最后的值会加1
false
4
短路与(&&)
public class Hello {
public static void main(String[] args) {
int i = 3 ;
boolean flag = (i>10) && (i++)<5;
System.out.println(flag);
System.out.println(i);
}
}
&&
遇到为false时不再进行判断。由于i>10为false,所以(i++)<5无论结果如何都不进行判断,总体结果为false,i的值依旧为3
false
3
逻辑或(|)
public class Hello {
public static void main(String[] args) {
int i = 3 ;
boolean flag = (i>1) | (i++)<5;
System.out.println(flag);
System.out.println(i);
}
}
|
两边结果都会判断,i会加1,结果为true,i=4
true
4
短路或(||)
public class Hello {
public static void main(String[] args) {
int i = 3 ;
boolean flag = (i>1) || (i++)<5;
System.out.println(flag);
System.out.println(i);
}
}
||
遇到结果为true不会往下判断。i>1结果为true,(i++)<5不会进行判断,最后结果为true,i=3
true
3
---------------
我每一次回头,都感觉自己不够努力,所以我不再回头。
---------------