☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

不建议使用 do 语句

9.4.1 ID_do_deprecated
目录 › next › previous

do 语句的终止条件在末尾,且第一次执行时不检查终止条件,易被误用。

do 语句可用于循环,也可用于定义由 break 等语句跳出的作用域,糅合了循环和流程跳转,使代码变得复杂,不利于阅读和维护,建议将复杂的 do 语句抽取成函数,使代码的静态结构更加清晰。

宏定义中的 do-while(0) 可不受本规则限制。

示例:

void foo(int n) {
    do {
        if (n < 0) {
            break;
        }
        ....
        if (n > 0) {
            continue;
        }
        ....
    } while (condition);   // Too complex
    ....
}

参考

C++ Core Guidelines ES.75
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.