C |与|| 之间的区别
时间:2017-07-28
本文章向大家介绍c|与|| 之间的区别,需要的朋友可以参考一下。
就像&
和&&
运算符一样,双运算符是一个“短路”运算符。
例如:
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 != null
false 之后停止。如果你只使用&,它会尝试检查class.someVar
你会得到一个很好的NullReferenceException
。使用Or-Operator可能不是一个陷阱,因为你不太可能触发坏事,但这是要记住的事情。
但是,除非你的设计中每个条件都是要执行的函数,否则没有人会使用单个&
或|
运算符。听起来像是一种设计气味,但有时(很少)这是一种干净的做事方式。该&
操作者“跑这3个功能,如果其中一个返回false,执行else块”,而|
不会“只如果没有返回false运行else块” -可能是有用的,但正如所说,往往这是一个设计闻。
- 通过单例模式模拟RAC连接 (r4笔记第76天)
- 网站上的验证码是怎么产生的?
- Java基础-17(01)总结,登录注册案例,Set集合,HashSet
- mongoDB初探第一篇(r4笔记第75天)
- 重温快速排序(r4笔记第73天)
- Java基础-17(01)总结,TreeSet,LinkHashSet
- 海量数据迁移之数据抽取流程 (r4笔记第72天)
- CSS Selectors Level 4新特性全面解析
- 巧用外部表避免大量的insert (r4笔记第71天)
- 如何用java语言实现C#中的ref关键字(按引用传递参数)的效果
- 16(01)总结List的子类,ArrayList,Vector,LinkedList
- 16(02)总结泛型
- 基于 React + Webpack 的音乐相册项目(上)
- 16(03)总结增强for循环,静态导入,可变参数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- springboot开发之引入资源并实现跳转到登录界面
- java之==操作符和equals操作符
- LeetCode | 24.两两交换链表中的节点
- java之单例设计模式
- Nginx | Nginx的介绍和安装
- 真特么激动第一个爬虫----爬取豆瓣电影top250
- LeetCode | 141.环形链表
- LeetCode | 20.有效的括号
- springboot开发之实现登录功能
- springboot开发之国际化(中英文切换)
- LeetCode | 225.用队列实现栈
- springboot开发之显示员工信息
- LeetCode | 232.用栈实现队列
- springboot开发之thymeleaf页面公共元素的抽取
- Redis | Redis 通用命令