Java - switch statement
Java switch Statement
The Java switch statement allows a variable to be tested for equality against a list of values. Each value is called a case, and the variable being switched on is checked for each case.
The switch statement can be used when multiple if-else statements are required. It can have multiple code blocks along with the case values and executes one of many code blocks based on the matches case value.
Syntax
The syntax of Java switch statement is −
switch(expression) {
case value :
// Statements
break; // optional
case value :
// Statements
break; // optional
// You can have any number of case statements.
default : // Optional
// Statements
}
Rules
The following rules apply to a switch statement −
- The variable used in a switch statement can only be integers, convertible integers (byte, short, char), strings and enums.
- You can have any number of case statements within a switch. Each case is followed by the value to be compared to and a colon.
- The value for a case must be the same data type as the variable in the switch and it must be a constant or a literal.
- When the variable being switched on is equal to a case, the statements following that case will execute until a break statement is reached.
- When a break statement is reached, the switch terminates, and the flow of control jumps to the next line following the switch statement.
- Not every case needs to contain a break. If no break appears, the flow of control will fall through to subsequent cases until a break is reached.
- A switch statement can have an optional default case, which must appear at the end of the switch. The default case can be used for performing a task when none of the cases is true. No break is needed in the default case.
Flow Diagram
Examples
Example 1
In this example, we’re showing use of switch statement where cases are based on a character. We’ve created a variable grade. Based on value of grade, each case is checked. if a case is satisfied and break statement is present then following cases are not checked.
public class Test {
public static void main(String args[]) {
char grade = 'C';
switch(grade) {
case 'A' :
System.out.println("Excellent!");
break;
case 'B' :
case 'C' :
System.out.println("Well done");
break;
case 'D' :
System.out.println("You passed");
case 'F' :
System.out.println("Better try again");
break;
default :
System.out.println("Invalid grade");
}
System.out.println("Your grade is " + grade);
}
}
Output
Compile and run the above program using various command line arguments. This will produce the following result −
Well done
Your grade is C
Example 2
In this example, we’re showing use of switch statement where cases are based on a integer. We’ve created a variable grade. Based on value of grade, each case is checked. if a case is satisfied and break statement is present then following cases are not checked.
public class Test {
public static void main(String args[]) {
int grade = 3;
switch(grade) {
case 1 :
System.out.println("Excellent!");
break;
case 2 :
case 3 :
System.out.println("Well done");
break;
case 4 :
System.out.println("You passed");
case 5 :
System.out.println("Better try again");
break;
default :
System.out.println("Invalid grade");
}
System.out.println("Your grade is " + grade);
}
}
Output
Compile and run the above program using various command line arguments. This will produce the following result −
Well done
Your grade is 3
Example 3
In this example, we’re showing use of switch statement where cases are based on a String. We’ve created a variable grade. Based on value of grade, each case is checked. if a case is satisfied and break statement is present then following cases are not checked.
public class Test {
public static void main(String args[]) {
String grade = "C";
switch(grade) {
case "A" :
System.out.println("Excellent!");
break;
case "B" :
case "C" :
System.out.println("Well done");
break;
case "D" :
System.out.println("You passed");
case "F" :
System.out.println("Better try again");
break;
default :
System.out.println("Invalid grade");
}
System.out.println("Your grade is " + grade);
}
}
Output
Compile and run the above program using various command line arguments. This will produce the following result −
Well done
Your grade is C
The default Keyword
The default keyword is used to specify a code block when no case value is matched. The default keyword is optional, but it should be used in the switch case statement.