Having all branches of a switch or if chain with the same implementation indicates a problem.
In the following code:
if (b == 0) // Noncompliant
{
DoTheThing();
}
else
{
DoTheThing();
}
int b = a > 12 ? 4 : 4; // Noncompliant
switch (i) // Noncompliant
{
case 1:
DoSomething();
break;
case 2:
DoSomething();
break;
case 3:
DoSomething();
break;
default:
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();
}