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

for 循环变量不应在循环体内被改变

9.2.7 ID_for_counterChangedInBody
目录 › next › previous

用于控制循环次数的变量称为“循环变量”,为了使代码具有清晰的静态结构,循环变量只应在 for 语句的第 3 个表达式中被改变。

示例:

for (int i = 0; i < 8; i++) {
    ....
    if (cond) {
        ++i;      // Non-compliant
    }
    ....
}

例中循环变量 i 在多处被改变,循环的执行次数和结束条件变得难以理解,易错且不利于维护。

参考

CWE-1095 C++ Core Guidelines ES.86 MISRA C 2004 13.6 MISRA C++ 2008 6-5-3
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.