switch语句嵌套if_C++核心准则ES.70:进行选择时,switch语句比if语句好
ES.70: Prefer a switch-statement to an if-statement when there is a choice
ES.70:进行选择时,switch语句比if语句好
Reason(原因)
- Readability.
- 可读性
- Efficiency: A switch compares against constants and is usually better optimized than a series of tests in an if-then-else chain.
- 效率:switch语句执行的时常数比较运算,相比一系列if-then-else语句,通常可以更好地被优化。
- A switch enables some heuristic consistency checking. For example, have all values of an enum been covered? If not, is there a default?
- switch语句允许某些启发式检查。例如枚举类型的所有值是否都被覆盖到了?如果没有,是否设置的default选项?
Example(示例)
void use(int n){ switch (n) { // good case 0: // ... break; case 7: // ... break; default: // ... break; }}
rather than(而不是):
void use2(int n){ if (n == 0) // bad: if-then-else chain comparing against a set of constants // ... else if (n == 7) // ...}
Enforcement(实施建议)
Flag if-then-else chains that check against constants (only).
标记和常数值进行比较的if-then-else判断链(只限于这种情况)
原文链接
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es70-prefer-a-switch-statement-to-an-if-statement-when-there-is-a-choice
觉得本文有帮助?请分享给更多人。
关注微信公众号【面向对象思考】轻松学习每一天!
面向对象开发,面向对象思考!
switch语句嵌套if_C++核心准则ES.70:进行选择时,switch语句比if语句好相关推荐
- C++核心准则ES.40:避免复杂的表达式
ES.40: Avoid complicated expressions ES.40:避免复杂的表达式 Reason(原因) Complicated expressions are error-pro ...
- C++核心准则ES.30: 不要使用宏进行程序中的文本操作
ES.30: Don't use macros for program text manipulation ES.30: 不要使用宏进行程序中的文本操作 Reason(原因) Macros are a ...
- C++核心准则ES.56:只在需要将一个对象显式移动到另外的作用域时使用std::move
ES.56: Write std::move() only when you need to explicitly move an object to another scope ES.56:只在需要 ...
- 无符号数的减法_C++核心准则ES.107:不要使用无符号数下标,使用gsl::index更好
ES.107: Don't use unsigned for subscripts, prefer gsl::index ES.107:不要使用无符号数下标,使用gsl::index更好 Reason ...
- c语言switch语句嵌套,浅谈c语言中switch语句的嵌套使用
switch语句是一种分支控制语句,它的应用在程序设计中起到了很重要的作用.由于其格式复杂,对于初学者来说很难掌握,switch语句的嵌套使用更是让初学者难以理解.本文通过介绍switch嵌套语句的形 ...
- pq 中m函数判断嵌套_matlab中M文件if语句嵌套问题
匿名用户 1级 2014-05-02 回答 在MATLAB中,选择结构可由两种语句来实现. (1) if语句 if语句的最简单用法为: if 表达式: 程序模块: end if语句的另一种用法为: i ...
- java 嵌套if优化_Java 如何优化if语句嵌套
我们平时写if,switch或for语句是常有的事儿,也一定写过多层if或for语句嵌套的情况,如果代码里的嵌套超过3层,阅读起来就会非常困难了.我们应该尽量避免代码嵌套多层,最好不要超过2层. if ...
- R语言嵌套的ifelse语距:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用。If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块
R语言嵌套的ifelse语句:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用.If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块 ...
- php 语法 条件变量,C ++核心准则:注意条件变量的陷阱
今天,我写了一篇关于条件变量的恐怖文章.您应该意识到条件变量的这一问题.C ++核心准则CP 42仅声明:"不要无条件等待". 等待!条件变量支持一个非常简单的概念.一个线程准备一 ...
最新文章
- 如何快速实现HTML编辑器.NET组件
- csvtk:高效命令行版极简dplyr
- nagios监控远程端口
- 判断数据是否服从某一分布(二)——简单易用fitdistrplus包
- Board Moves CodeForces - 1353C(数学)
- JavaOne 2012:JavaOne技术主题演讲
- Java DOM方式解析XML(模板)
- [Android5 系列二] 1. 全实例之控件(Widget)
- centos php71,CentOS 71编译安装PHP7
- cad常青藤插件_CAD作图效率低怎么办?最全辅助插件大合集,绘图效率提升70%,限时分享...
- 苹果CMS V10 播放记录_苹果cms采集后无法播放怎么解决?
- mysql查询一张表中一共有多少条数据
- 虚拟机镜像文件高速下载方法之一
- 二十九、非谓语动词_作定语
- [02/Dec/2019:12:59:10 +0800]之日期转换
- cad2010怎么隐藏标注尺寸,cad2007怎么隐藏标注尺寸
- mac的python换字体_Python -mac-画图及设置坐标中文字体
- UnityHub 下载unity 卡在最后不动,已解决
- 退出cmd.exe或退出批处理文件
- 【每日一题】宝石与石头