Java: Switch Statement
Note: Not to be confused with switch expressions. (What's the difference between statements and expressions?)
Arrow syntax (Java 12+)
switch (myInt) {
case 1 -> System.out.println("One");
case 2 -> {
System.out.println("Two");
System.out.println("No fall through");
}
default -> System.out.println("Something else");
}
No fall through.
Multiple statements require { ... }
Colon syntax
switch (myInt) {
case 1:
System.out.println("One");
break;
case 2:
System.out.println("Two");
System.out.println("Falling through");
default:
System.out.println("Something else");
}
Falls through if there's no break
.
Multiple statements don't require { ... }
Multiple case constants
Both colon and arrow variants allow for multiple constants in each case:
switch (myInt) {
case 1, 2, 3:
System.out.println("One, two or three");
break;
default:
System.out.println("Something else");
}
Can't mix colons and arrows
You can't have both cases with colon syntax and cases with arrow syntax in the same switch statement.
Fall through
Fall through is what happens when execution proceeds from the bottom of one case to the top of the subsequent case.
First case falls through. Output: "Hello World"
switch (1) {
case 1:
System.out.print("Hello ");
// Fall through to next case
case 2:
System.out.println("World");
break;
default:
System.out.println("Not executed");
}
Comments
Be the first to comment!