专栏首页C++核心准则原文翻译C++核心准则ES.75: 避免使用do语句

C++核心准则ES.75: 避免使用do语句

ES.75: Avoid do-statements

ES.75: 避免使用do语句

Reason(原因)

Readability, avoidance of errors. The termination condition is at the end (where it can be overlooked) and the condition is not checked the first time through.

可读性,避免错误。中止条件位于循环的最后(可能被忽视的位置),并且第一次进入循环时不会检查循环条件

Example(示例)

int x;
do {
    cin >> x;
    // ...
} while (x < 0);
Note(注意)

Yes, there are genuine examples where a do-statement is a clear statement of a solution, but also many bugs.

确实存在使用do语句的清晰易懂的例子,但同时也存在很多错误。

Enforcement(实施建议)

Flag do-statements.

标记使用do语句的代码。

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es75-avoid-do-statements

本文分享自微信公众号 - 面向对象思考(OOThinkingDalian),作者:面向对象思考

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++核心准则编译边学-F.46 main函数的返回值类型是整数

    It's a language rule, but violated through "language extensions" so often that i...

    面向对象思考
  • C++核心准则C.87:小心基类的相等运算符

    It is really hard to write a foolproof and useful == for a hierarchy.

    面向对象思考
  • C++核心准则CP.22:永远不要拿着锁调用未知代码

    CP.22: Never call unknown code while holding a lock (e.g., a callback)

    面向对象思考
  • 解决webpack下node.js导致CPU占用过高的问题

    最近总是遇到node.js将CPU占用率顶到100%,导致系统卡顿.查了很多资料,大致确定是webpack调用 fsevents 出错,然后频繁查找module...

    用户1220521
  • 送给前端的你:可视化快速生成模拟数据服务——Easy Mock

    ? 内容来源:2017年11月18日,大搜车前端工程师高攀在“2017中国开源年会”进行《Easy Mock 接口数据模拟服务》演讲分享。IT 大咖说(微信i...

    IT大咖说
  • 遇到npm install的错误,多比较比较npm的版本

    如果从github上clone一个项目下来,同样的npm install命令,在你同事那里工作,但是你本地不行,除了检查目录C:\Users<user>\App...

    Jerry Wang
  • Hexo 文章图片添加水印,不用云处理

    由于网上找到的都是借用第三方云处理添加水印,但是我不太想用,所以自己开发了一个插件

    SpiritLing
  • 我国多式联运物流的发展因素变化都有哪些?

    我国过去多式联运发展落后,目前制约因素都在发生积极变化,我国的多式联运比例以及多式联运中铁路参与度都远低于美国,过去的发展相对落后,不过目前制约我国多式联运发展...

    庄帅
  • 4.Android-adt安卓打包过程、adb指令学习

    点击export signed application package(导出带签名的APP包,签名的作用是避免盗版):

    张诺谦
  • python3 asyncio

    asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。

    py3study

扫码关注云+社区

领取腾讯云代金券