Else If chaining with unrelated expressions is bad style
Related expression chaining is GOOD
if (a == A)
X;
else if (a == A2)
Y;
else
Z;
Unrelated expression chaining is BAD
if (a == A)
X;
else if (b == B)
Y;
else
Z;
Nested Equivalent
if (a == A)
X;
else
{
if (b == B)
{
Y;
}
else
{
Z;
}
}
Equivalence
| Chained | Nested | |:—————————————————————- | ———————————————————————————————— | | if (A) X; else if (B) Y; else Z; | if (A) X; else { if (B) Y; else Z; } |
Truth table
| A | B | Chained | Nested |
| 1 | 1 | X | X |
| 1 | X | X | |
| 1 | Y | Y | |
| Z | Z |