Table of Contents

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];
}