switch statement.
Fall-through occurs when a series of executable statements after a case label is not guaranteed
to transfer control before the next case label. For example, this can happen if the branch is missing a break statement.
In that case, control falls through to the statements after
that switch label, even though the switch expression is not equal to
the value of the fallen-through label. While occasionally intended, this construction is confusing and is often the result of a typo.
This inspection ignores any fall-through commented with a text matching the regex pattern (?i)falls?\s*thro?u.
There is a fix that adds a break to the branch that can fall through to the next branch.
Example:
switch(x) {
case (4):
if (condition) {
System.out.println("3");
// no break here
} else {
break;
}
case (6):
System.out.println("4");
}
After the quick-fix is applied:
switch(x) {
case (4):
if (condition) {
System.out.println("3");
} else {
break;
}
break;
case (6):
System.out.println("4");
}