&& 和 & 以及 |和|| 的区别

举报
陈言必行 发表于 2021/08/14 00:38:30 2021/08/14
【摘要】 &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式, 例如,对于if(str != null &...
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,
例如,对于if(str != null &&!str.equals(“”))表达式,当str为null时,后面的表达式不会执行,
所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33& ++y>0) y会增长,If(x==33 && ++y>0)不会增长
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,
&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31& 0x0f的结果为0x01。

| 和 ||都可以做逻辑或的运算符,表示逻辑或(or),当运算符两边的表达式的结果都为false时,整数运算结果为false,否则,只要有一方为true,则结果为true。
||还具有短路的功能,即如果第一个表达式为true,则不在计算第二个表达式,
| 还可以用作位运算符,当 |操作符两边的表达式不是boolean类型时,
| 表示按位运算;

文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/76091333

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。