逻辑与(&)、短路与(&&)、逻辑或(|)、短路或(||)

逻辑与(&)、短路与(&&)、逻辑或(|)、短路或(||)的区别

  • &|:所有条件都会进行判断
  • &&:遇到结果为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
--------------- 我每一次回头,都感觉自己不够努力,所以我不再回头。 ---------------
原文地址:https://www.cnblogs.com/zjw-blog/p/11870259.html