在 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 不会被执行。
此问题为常见笔误,多数由复制粘贴造成,也可能是维护代码时对之前的逻辑不够了解造成的错误。