Having all branches of a switch
or if
chain with the same implementation indicates a problem.
In the following code:
if (b == 0) { // Noncompliant
doOneMoreThing();
} else {
doOneMoreThing();
}
switch on i { // Noncompliant
when 1 {
doSomething();
}
when 2 {
doSomething();
}
when 3 {
doSomething();
}
when else {
doSomething();
}
}
Either there is a copy-paste error that needs fixing or an unnecessary switch
or if
chain that should be removed.
Exceptions
This rule does not apply to if
chains without else
, nor to switch
without a default
clause.
if(b == 0) { //no issue, this could have been done on purpose to make the code more readable
doSomething();
} else if(b == 1) {
doSomething();
}