=== Exceptions

The rule does not raise an issue for blocks in an `if` chain that contain a single line of code. The same applies to blocks in a `switch` statement that contain a single line of code with or without a following `break`.

[source,csharp]
----
if (a >= 0 && a < 10)
{
  DoTheThing();
}
else if (a >= 10 && a < 20)
{
  DoTheOtherThing();
}
else if (a >= 20 && a < 50)    //no issue, usually this is done on purpose to increase the readability
{
  DoTheThing();
}
----

However, this exception does not apply to `if` chains without an `else` statement or to a `switch` statement without a `default` clause.

[source,csharp]
----
if (a == 1)
{
  DoSomething();  // Noncompliant, this might have been done on purpose but probably not
}
else if (a == 2)
{
  DoSomething();
}
----
