if...else-if 分枝的条件不应重复
9.1.2 ID_if_identicalCondition
if...else-if 分枝的条件不应有所重复,否则排在前面的分枝会得以执行,排在后面的分枝得不到执行机会。
示例:
if (condition1) {
branch1
}
else if (condition2) {
branch2
}
else if (condition1) { // Non-compliant, see the previous ‘condition1’
branch3
}
else {
branch4
}
例中 branch1 和 branch3 的条件是相同的,所以 branch3 不会被执行。
这种问题为常见笔误,多由复制粘贴或维护代码时对原有逻辑不够了解造成。