About
This article is about the implementation of the Switch branching statement 1) in Java
Type
Value Switch
You need to use primitive type or enum after the case word. ie int in place of Integer
The value switch is supported.
int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println(monthString);
Expression Switch
Java does not support expression switch, you should use the if then else construct for this purpose.
Support
Constant expression required
In a constant expression, you need to use a primitive type. Ie int in place of integer
Example in a function:
private String[] parseCommand(String code) {
// final Integer defaultState = 1; // Not good
final int defaultState = 1; // Good
Integer state = defaultState;
for (byte b : code.getBytes()){
switch (state) {
case defaultState:
break;
}
}
return new String[0];
}