逻辑运算符&&、&、||和|的区别

运算符|和||以及&和&&的区别

逻辑运算符: &, |, ^, !
  • &(与): 只要有一边为fale, 那么就是false
  • |(或): 只要有一边为true, 那么就是true
  • ^(异或): 只要是相同的boolean值, 那么就是false, 不相同才是true
逻辑运算符(双与, 双或): && ||
  • 解释: 双与和双或 得到的结果 和 单与和单或 是完全一样的
|和||以及&和&&两者的区别

&& 和 & :

&& 一旦判断到左边是false之后, 右边就不参与运算了

&: 不管左边是true还是false, 右边都参与运算

|| 和 |:

|| 一旦判断左边是true之后, 右边就不参与运算了

| 不管左边是true还是false, 右边都参与运算

代码分析:

public class Demo

{     
	private static int j = 0; 
	private static boolean methodB(int k)
	{
		j += k; 
		return true; 
	}
	public static void methodA(int  i)
	{ 
		boolean b;   
		b = i < 10 | methodB (4); 
		b = i < 10 || methodB (8); 
	}
	public static void main (String args[] )
	{
		methodA (0); 
		System.out.println(j);
	} 
}

运行结果为4,为什么不为4和8呢,因为逻辑或只要左边的结果为true,右边就不参与运算了,所以没有调用到methodB (8)的方法。

总结

面试的时候这个点要小心,但是如果做开发的时候,还是用&&和||运算符比较好,这样可以提高代码的效率,当然前提是程序猿需要细心。

你可能感兴趣的:(Java)