java——&&,||与&,|的区别

1、&&,||是逻辑运算符,而&,|是位运算符。
2、&&,||只能对false和true进行运算,&,|既可对数值进行运算有可对false和true进行运算
例如:

if (a==1 && b==2)  //既要满足a=1,也要满足b=2
if (a==1 || b==2)  //只要满足a=1,b=2中的一个既可

//最后得到的值是false或true,这就是只能对false和true进行运算
int x=10;
int y=20;
if(((x=0)==0)|((y=0)==0)){   //true|true->1|1
	System.out println(y);   //输出y值为0
}


//a&b,a|b是a,b二进制的位运算
3&5;//0011&0101->0001(同1为1,否则为零)
3|5;//0011|0101->0111(遇1则1)
//这就是&,|还可对数值进行运算

3、位运算不会短路
什么是逻辑运算短路现象?
例如:

int a=20,b=20;
if(((a=0)==0)||((b=0)==0)){ //a=0已经满足了,就不再执行b=0了,即为短路
	System.out.println(b);//所以此时输出b为20
}

位运算符不会出现短路现象
例如:

int a=20,b=20;
if(((a=0)==0)|((b=0)==0)){ //true|true->1|1->所以执行b=0
	System.out.println(b);//此时输出b为0
}
发布了29 篇原创文章 · 获赞 3 · 访问量 383

猜你喜欢

转载自blog.csdn.net/qq_44687512/article/details/104464030
今日推荐