■ You cannot
have long, floating point,
or String appearing in a
case statement. The switch expression must evaluate to byte, char, short, or int only.
■ You get a compiler error if the
switch expression's type can’t accommodate the value from any case - meaning if it's over
the type's maximum value. i.e. This
code will not compile because the byte variable b cannot go to 130:
■ default and break are both always optional.
■ The default code can be placed anywhere – not
necessarily at the bottom of the list.
■ Switches can be nested to appear within
cases.
■ Execution falls through any code not
containing a break statement. This includes falling through any
break-less default case which was
not placed at the bottom of all the other the cases.
■ A case can only have a literal or a static
final variable.
■ You cannot have if-elses or anything reaching
outside the case block.