欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

&& 和 & 的区别 ||和|区别

程序员文章站 2024-03-22 10:37:28
...

 && 和 & 的区别:

&&&结果一样,&&有短路效果,左边为false,右边不执行;&左边无论是什么,右边都会执行。

 |||区别:

|||结果一样,||有短路效果,左边为true,右边不执行;|左边无论是什么,右边都会执行。

但要特别注意的是 短路与只有是左边为false时,右边才不执行,本题不同的是左边现在是true,所以右边还要看。同样的短路或,只有当左边是true时,右边才不执行中间虽然为短路或,因为左边是false,所以右边还要考虑,具体细节如下
        

public class Test{
	public static void main (String []  args)  {
		boolean x = true;
		boolean y = false;
		short z = 42;
		
		//如果if((z++==42)&&(y==true))条件成立,执行z++,不成立,就不执行z++
		//左边的条件:z==42,z++  z==42成立,z++变成43
        
        //尤其这一步 短路与只有是左边为false时,右边才不执行
		//中间虽然是短路与,因为左边现在是true,右边还要看
        
		//右边 y==true   不成立
		//true && false 结果为false
		if((z++==42)&&(y==true))	z++;
	
		//左边为x=false,赋值  结果就为false
        
        //同样的短路或,只有当左边是true时,右边才不执行
		//中间虽然为短路或,因为左边是false,右边继续看
        
		//++z,z==45  ++z变成44,z==45是否成立,不成立
		//false || false  结果为false
		if((x=false) || (++z==45))  z++;

		System.out.println("z="+z);//44
	}
}