Java中“||”与“|”的区别 5

 我来答
娱乐小八卦啊a
高粉答主

推荐于2020-05-27 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117852

向TA提问 私信TA
展开全部

两者都是或,但是不一样。

不同点:同与操作类似,||表示短路或,当运算符左边的值为true时,右边的表达式不会进行运算。

举个例:

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。

扩展资料

|与||的相同点:二者都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为false。

&与&&的异同点。
相同点:二者都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则为false。

不同点:在使用&进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用&&进行运算时,当左边为false时,右边的表达式不会进行运算,因此&&被称作短路与。

注意事项:

逻辑运算符一般用于连接boolean类型的表达式或者值。

表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。

算术表达式:a + b

比较表达式:a == b(条件表达式)

参考资料

百度百科——Java


Gz陶克说
高粉答主

推荐于2019-09-24 · 繁杂信息太多,你要学会辨别
知道答主
回答量:179
采纳率:100%
帮助的人:4.5万
展开全部

区别一:

定义不同:

||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。

区别二:

与操作和或操作的区别

(1)在Java程序中,使用与操作,要求所有表达式的判断结果都是TRUE,才为真,若有一个为FALSE,那么最终判断结果则为FALSE

(2)使用或操作,只要其中有一个表达式为TRUE,那么最终的结果就为TRUE,只有当所有的表达式为FALSE时最终结果才为FALSE

区别三:

实际含义不同:

“||”:   如果左边计算后的操作数为true,右边则不再执行,返回true;

“|”:前后两个操作数都会进行计算。也就是说:“|”不存在短路。

区别四:

举例说明

1、当使用|时,若前面的表达式为真时,程序会继续执行后面的表达式,然后在得出TRUE的结果,代码如下:

结果如下:结果为真 1

2、当使用||(短路或)时,若前面的表达式结果为真,则程序不会再执行后面的表达式,直接得出TRUE的结果,代码如下:

结果如下:结果为假 0

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小Z同学Z_
推荐于2019-08-07 · TA获得超过597个赞
知道答主
回答量:16
采纳率:0%
帮助的人:1138
展开全部

两者都是或,但是不一样。

举个例:

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。

拓展资料:

有些人习惯把||叫做短路或,把&&叫做短路与。&&和&的区别和||与|的区别类似,对于&&来说,

如果前面的条件表达式已经为假了,整个条件表达式肯定为假,就不会去执行判断后面的条件表达

式。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友211658b42
推荐于2018-02-26 · TA获得超过3383个赞
知道小有建树答主
回答量:606
采纳率:100%
帮助的人:599万
展开全部
两者都是或,但是不一样。
举个例实例给你看你就明白了:

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。

有些人习惯把||叫做短路或,把&&叫做短路与。&&和&的区别和||与|的区别类似,对于&&来说,如果前面的条件表达式已经为假了,整个条件表达式肯定为假,就不会去执行判断后面的条件表达式。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四川源码时代科技有限公司
2019-09-16 · 让每一名学员高薪就业
四川源码时代科技有限公司
源码时代IT培训,即成都源代码教育咨询有限公司,专注Java、PHP、UI设计、H5前端培训,源码时代致力于打造中国高端IT培训品牌,旨在为每一名前来培训的学子提供良好的服务。
向TA提问
展开全部
Java中‘|’与‘||’的区别
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。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(15)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式