java中的短路与(&&)、短路或(||) 与 逻辑与(&)、逻辑或(|)有什么区别啊??

&是java中的位逻辑运算:eg:2&3=2;分析如下:2的二进制为10;3的二进制为11;逻辑&之后为10&&是boolean的逻辑运算eg:if((1>2)&&(3>... &是java中的位逻辑运算:
eg: 2&3=2;
分析如下:
2的二进制为10 ;3的二进制为11 ; 逻辑&之后为10

&&是boolean的逻辑运算
eg:
if((1> 2)&&(3> 1) )
表示如果两个条件都成立则执行之后的逻辑;

| 逻辑或
eg. A|B,会对A, B都进行判断
||短路或
eg.A||B,只有当A为假的时候才会对B进行判断。若A为真,则不继续对B进行判断。
首先名称是不同的
&&逻辑与  ||逻辑或  它们都是逻辑运算符
& 按位与  | 按位或  它们都是位运算符
if(a==1&&b==2) 这是说既要满足a=1也要满足b=2
if(a==1||b==2) 这是说或者满足a=1或者要满足b=2
而a&b或者a|b则是二进制的与或运算
&同为1时为1,否则为0
|同为0时为0,否则为1
3&5则
 0011
&0101
 0001
等于1

3|5则
 0011
|0101
 0111
等于7

&&逻辑与 也叫做短路与 因为只要当前项为假,它就不往后判断了,直接认为表达式为假 ||逻辑或 也叫做短路或 因为只要当前项为真,它也不往后判断了,直接认为表达式为真

| 逻辑或
eg. A|B,会对A, B都进行判断
||短路或
eg.A||B,只有当A为假的时候才会对B进行判断。若A为真,则不继续对B进行判断。
展开
 我来答
爱笑的高大傻
2018-01-02 · TA获得超过8639个赞
知道小有建树答主
回答量:0
采纳率:51%
帮助的人:0
展开全部

首先名称是不同的:


&&逻辑与  ||逻辑或  它们都是逻辑运算符



& 按位与  | 按位或  它们都是位运算符



if(a==1&&b==2) 这是说既要满足a=1也要满足b=2



if(a==1||b==2) 这是说或者满足a=1或者要满足b=2



而a&b或者a|b则是二进制的与或运算



&同为1时为1,否则为0



|同为0时为0,否则为1



3&5则



0011



&0101



0001



等于1




3|5则



0011



|0101



0111



等于7







&&逻辑与 也叫做短路与 因为只要当前项为假,它就不往后判断了,直接认为表达式为假

||逻辑或 也叫做短路或 因为只要当前项为真,它也不往后判断了,直接认为表达式为真

Java中逻辑运算短路的理解:

短路 就是知如果左侧的表达式能确定运算后的结果,则不再计算右侧的表达式。
如(1>2)&&(2<3)   明明左侧已经为假 了   ,我 不用计算右侧我一定知道 此表达是为假,这样 就好似物理中的电流,当某处短路时,电流直接从一条路通过,而不再管另一条路。

看个例子:



public class Logic{


public static void main(String[] args){


int a = 1;


int b = 1;


if(a<b&&b<a++){


System.out.println(a>b&true);


System.out.println(a);


System.out.println("this's in my control");



else{


System.out.println("that's impossible");


System.out.println(a);



此处由于a<b为假 ,所以 后面的b<a++不会执行


此处的结果为 


that's impossible


若假设a的初值为0,此时a<b成立,这时就要计算后面的值了


结果应该为和上面一样。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式