Break and Fall-Through in switch Blocks : switch « Statements « SCJP






case constants are evaluated from the top down
the first case constant that matches the switch's expression is the execution entry point.
once a case constant is matched, the JVM will execute the associated code block and subsequent code. 

enum Color {red, green, blue}

public class MainClass{
  public static void main(String [] args) {
    Color c = Color.green;
    switch(c) {
      case red: System.out.print("red ");
      case green: System.out.print("green ");
      case blue: System.out.print("blue ");
      default: System.out.println("done");
    }
  }
}
green blue done








5.8.switch
5.8.1.switch Statements
5.8.2.Case constant must be a compile time constant!
5.8.3.Method being invoked on the object reference must return a value compatible with an int.
5.8.4.It's illegal to have more than one case label using the same value.
5.8.5.It is legal to leverage the power of boxing in a switch expression.
5.8.6.Break and Fall-Through in switch Blocks
5.8.7.Insert a break into each case
5.8.8.Fall-through logic
5.8.9.The Default Case
5.8.10.The default case doesn't have to come at the end of the switch.
5.8.11.default works just like any other case for fall-through!
5.8.12.To ensure that only one case of a switch statement is executed, you need to use the break statement.
5.8.13.The break statement transfers execution out of an enclosing statement.