No break at the end of case
Hi everybody,
Effectively, the break at the end of a case is optional, and the code will just continue in the next case alternative; this may even be useful in some situations, avoiding to duplicate code.
However it is widely considered as bad practice to fall from a specific case alternative to the default alternative or to omit the break at the end of the last case of a switch; this is the reason of the warning emitted here.
This warning is emitted as it is quite current that a forgotten break, at the end of the last case of a switch, if additional cases are subsequently added will, by error, fall down into the added alternative.
In the example given what is really needed is having a break before the default; suppressing the default is a bad idea that only works because the default alternative is empty. Furthermore static code analyzers will likely consider an error to have a break without a default, so the inner switch may also need a default alternative, that, as Richard states, may be placed anywhere in the switch body (although it is customary to place it either at end or at beginning of the switch).
Bernard