C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Braces: The curly brackets are optional around the statements of a case. We can even have multiple statements, and no braces are required.
Finally: A final constant value (like the special string in this example) can be matched in a case.
Expression: An expression that can be compiled into a constant (like "cat" plus "100") is also allowed as the case value.
Java program that uses case statements
public class Program {
static String testCase(String value) {
final String special = "constant";
String temp = "";
// Switch on the String value.
switch (value) {
case "100":
case "1000":
case "10000": {
// Place braces around case statements.
return "Multiple of ten";
}
case "500":
case "5000":
case "50000":
// No braces are needed.
return "Multiple of fifty";
case special:
// We can match a final constant.
// ... Multiple statements can be in a case.
String result = special.toUpperCase() + "!";
return result;
case "cat" + "100":
// This also matches a constant.
// ... The string expression is compiled into a final String.
return "CAT";
case "X":
// This case will fall through so case "Y" is also entered.
temp += "X";
case "Y":
temp += "Y";
return temp;
default:
// The default case.
return "Invalid";
}
}
public static void main(String[] args) {
System.out.println(testCase("100"));
System.out.println(testCase("1000"));
System.out.println(testCase("5000"));
System.out.println(testCase("constant"));
System.out.println(testCase("cat100"));
System.out.println(testCase("X"));
System.out.println(testCase("Y"));
System.out.println(testCase("?"));
}
}
Output
Multiple of ten
Multiple of ten
Multiple of fifty
CONSTANT!
CAT
XY
Y
Invalid
Note: The case "X" has no termination statement (no break or return) so it falls through and also matches case "Y."
ReturnAnd: In Java we can have all cases use the same bracket syntax so all statements are visually equal.
Tip: This can improve program readability. And readability in turn reduces the changes a program will have nasty bugs.