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

避免使用跳转语句退出循环

9.7.7 ID_jumpOutLoop
目录 › next › previous

循环的退出条件应与其控制表达式一致,使代码具有清晰的静态结构,否则可读性较差,尤其在多个嵌套的作用域中使用 break、goto 或 return 等跳转语句,会使代码难以理解。

示例:

while (cond) {
    if (x) {
        if (y) {
            break;   // Bad
        }
        ....
    } else {
        ....
        break;   // Bad
    }
}

例中循环条件散落在循环体内,而且循环的主体逻辑被各种跳转语句“割裂”,是不利于阅读和维护的。

相关

ID_tooManyExit

参考

MISRA C 2004 14.6 MISRA C 2012 15.4 MISRA C++ 2008 6-6-4
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.