
Java中“||”与“|”的区别 5
17个回答
展开全部
||是逻辑或
|是位或
|是位或
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
||是逻辑判断,||的左右都是布尔表达式,然后进行逻辑或运算。
|是数值运算,|的左右是二进制数,然后根据,二进制数进行或运算。
|是数值运算,|的左右是二进制数,然后根据,二进制数进行或运算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用魅影追寻的回答:
补充一下,为什么|需要两边都进行计算,单个的 | 是按位进行或运算,属于位运算符,也就是说 a | b,指的是a与b进行或运算,固然a和b都需要进行计算了,4|3的运算结果就是7。100|011=111。|| 进行的是逻辑运算,属于逻辑运算符,自然只要一个为真,另外一个就不需要计算了。同理&&与&也一样。100&011=000
补充一下,为什么|需要两边都进行计算,单个的 | 是按位进行或运算,属于位运算符,也就是说 a | b,指的是a与b进行或运算,固然a和b都需要进行计算了,4|3的运算结果就是7。100|011=111。|| 进行的是逻辑运算,属于逻辑运算符,自然只要一个为真,另外一个就不需要计算了。同理&&与&也一样。100&011=000
展开全部
补充一下,为什么|需要两边都进行计算,单个的 | 是按位进行或运算,属于位运算符,也就是说 a | b,指的是a与b进行或运算,固然a和b都需要进行计算了,4|3的运算结果就是7。100|011=111。|| 进行的是逻辑运算,属于逻辑运算符,自然只要一个为真,另外一个就不需要计算了。同理&&与&也一样。100&011=000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两者都是或,但是不一样。
举个例:
int i=0;
if(3>2 || (i++)>1) i=i+1;
System.out.println(i);
这段程序会打印出1,而不是打印出2。
因为在if的条件判断中,程序先判断第一个表达式3>2是否成立,结果3>2为真,那么按照逻辑来
说,无论后面一个表达式(i++)>1是否成立,整个或表达式肯定为真,因此程序就不去执行判断后面
一个表达式即(i++)>1了,所以这里i并没有自增1。然后程序执行到i=i+1,于是i变为1。最后打印
出1。
int i=0;
if(3>2 | (i++)>1) i=i+1;
System.out.println(i);
如果换做这样写,那么就是打印出2了,因为无论第一个条件3>2是否为真,程序都会去执行判断第
二个条件表达式,因此i++这个自增是会被执行的,再加上if内的i=i+1,所以最终i=2。
拓展资料:
有些人习惯把||叫做短路或,把&&叫做短路与。&&和&的区别和||与|的区别类似,对于&&来说,
如果前面的条件表达式已经为假了,整个条件表达式肯定为假,就不会去执行判断后面的条件表达
式。
举个例:
int i=0;
if(3>2 || (i++)>1) i=i+1;
System.out.println(i);
这段程序会打印出1,而不是打印出2。
因为在if的条件判断中,程序先判断第一个表达式3>2是否成立,结果3>2为真,那么按照逻辑来
说,无论后面一个表达式(i++)>1是否成立,整个或表达式肯定为真,因此程序就不去执行判断后面
一个表达式即(i++)>1了,所以这里i并没有自增1。然后程序执行到i=i+1,于是i变为1。最后打印
出1。
int i=0;
if(3>2 | (i++)>1) i=i+1;
System.out.println(i);
如果换做这样写,那么就是打印出2了,因为无论第一个条件3>2是否为真,程序都会去执行判断第
二个条件表达式,因此i++这个自增是会被执行的,再加上if内的i=i+1,所以最终i=2。
拓展资料:
有些人习惯把||叫做短路或,把&&叫做短路与。&&和&的区别和||与|的区别类似,对于&&来说,
如果前面的条件表达式已经为假了,整个条件表达式肯定为假,就不会去执行判断后面的条件表达
式。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
复制知道口令可打开页面$zmMfe7NY$
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询