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

for 循环体不应为空

9.2.5 ID_for_emptyBlock
目录 › next › previous

空的 for 循环结构不清晰,可读性较差。

示例:

int foo(int n) {
    int s = 0;
    for (int i = 1; i <= n; s += i++);   // Non-compliant
    return s;
}

for 语句小括号内的三个表达式应分别专注于循环变量的初始化、循环条件的判断、循环变量的增减,循环体应专注于迭代算法的实现,使程序具有清晰的静态结构,便于阅读,利于维护。

应改为:

int foo(int n) {
    int s = 0;
    for (int i = 1; i <= n; i++) {   // Compliant
        s += i;
    }
    return s;
}

另外,在 C++ 代码中,如果只通过 for 语句遍历容器,而不对元素进行操作是没有意义的,如:

void bar(vector<int>& v) {
    for (auto i: v);         // Non-compliant
}

这种代码多为残留代码或功能未实现,应当及时去除或补全功能。

参考

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