加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C |与|| 之间的区别

发布时间:2020-12-15 04:57:02 所属栏目:百科 来源:网络整理
导读:就像和运算符一样,双运算符是一个短路运算符。 例如: if(condition1 || condition2 || condition3) 如果condition1为true,则不检查条件2和3。 if(condition1 | condition2 | condition3) 这将检查条件2和3,即使1已经为真。由于您的条件可能是非常昂贵的

就像&和&&运算符一样,双运算符是一个“短路”运算符。

例如:

if(condition1 || condition2 || condition3)

如果condition1为true,则不检查条件2和3。

if(condition1 | condition2 | condition3)

这将检查条件2和3,即使1已经为真。由于您的条件可能是非常昂贵的功能,因此使用它们可以获得良好的性能提升。

有一个很大的警告,NullReferences或类似的问题。例如:

if(class != null && class.someVar < 20)

如果class为null,则if语句将在class != nullfalse之后停止。如果你只使用&,它会尝试检查class.someVar你会得到一个很好的NullReferenceException。使用Or-Operator可能不是一个陷阱,因为你不太可能触发坏事,但这是要记住的事情。

但是,除非你的设计中每个条件都是要执行的函数,否则没有人会使用单个&或|运算符。听起来像是一种设计气味,但有时(很少)这是一种干净的做事方式。该&操作者“跑这3个功能,如果其中一个返回false,执行else块”,而|不会“只如果没有返回false运行else块” -可能是有用的,但正如所说,往往这是一个设计闻。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读