作为控制条件的逻辑表达式不应恒为真或恒为假
10.1.4 ID_invalidCondition
恒为真或恒为假的表达式无法改变程序的流程,不应作为控制条件,否则会造成逻辑错误。
当控制条件为常量表达式时,本规则特化为 ID_constLogicExpression。
示例:
void foo() {
int i = 1;
if (i > 0) { // Non-compliant, always true
....
} else {
.... // Infeasible path
}
}
例中变量 i 初始化为 1 后在没有被修改过的情况下,仍对其进行判断是没有意义的,else 分枝的代码得不到执行机会。