Switch Case Program in Java
The switch case program in Java controls which code snippet gets executed on the basis of the value of the expression mentioned in the switch statement. It is similar to the if-else ladder statements that controls the flow of the program. However, the switch case program is more readable as compared to the if-else statements. The basic syntax of the switch case is mentioned below.


Observe the following switch program.
Filename: SwitchCaseExample.java
Output:
Explanation: We have taken the variable fruit as the expression of the switch statement whose value is Mango. This value matches with the second case, and hence, only the body of the second case is executed. Please note that values of the different cases of the switch block are case sensitive. Thus, mango and Mango are different. If we replace the value of the fruit variable from Mango to mango, then the default case gets the chance to execute. The default case never comes with a value. It is worth mentioning that break statements also play a very important role in deciding the output.
The flow diagram of the switch case in Java is given below.
The above flow diagram is valid only when we have used break statements in our code. The output changes dramatically when the break statements are commented. Observe the below-written code.
Filename: SwitchCaseExample1.java
Output:
Explanation: The first case does not work because the expression value is not matching with the case value. For the second case, the expression value matches and its body is executed. But there is no break statement in the body of the second case. Therefore, the control reaches the body of the third case and executes the statements. There also the break statement is commented. Hence, the control moves to the fourth case and executes its statements. The control still did not find the break statement and thus enter the default section, eventually and then exits from the switch case block.
Thus, the flow diagram of the Java switch case without break statements is given below.
We can even do the nesting of switch case. The following program does the same.
Filename: SwitchCaseExample2.java
Output:


Explanation: We have used switch case inside different cases. This is called nesting. The std variable handles the class, and the sub variable deals with the subject. The case of value 8 (std = 8 in our case) is selected, and inside that case, we execute the case handling the subject Mathematics (sub = ‘M’).
Java switch case is used in various situations. The following examples illustrate some usages of Java Switch Case.
To Check Vowels and Consonants
Filename: SwitchCaseExample3.java
Output:
Explanation: Any character barring a, A, e, E, i, I, o, O, u, U is consonant. The characters A, a, e, E, i, I, o, O, u, U are vowels. On the basis of the definition of vowels and consonants, we have written our code. Each case block handles one vowel. The default block deals with the consonants.
Displaying the Months of a Year
Filename: SwitchCaseExample4.java
Output:
Explanation: We have only 12 months in a year. Therefore, the first 12 natural number represents 12 months anything else becomes invalid, which is handled by the default case.
Another application of the Java switch case is the basic calculator, which we have already discussed earlier.
As far as execution time is concerned, the Java switch-case is better than the Java if-else ladder. Because every case in a switch block is completely independent of any other case present in that switch-case, whereas, in an if-else, the else is dependent on the expression present in the if statement. Hence, the independence of the cases, the compiler is able to do the re-ordering to make the execution faster for a switch-case.
We know that both the Java switch case and if-else are decision making statements. Also, whatever we can do with the switch case can be done by if-else statements too. However, the reverse of it is not true. Let’s understand the concept through a Java program.
Suppose, if the input number is between 0 to 100, we print India, and if it is greater than 100, we print America. Finally, for those numbers that are less than 0, we print Russia. The code snippet of this scenario using the if-else will be:
To do the same thing using the switch case is impossible because the cases inside the switch block deal with the specific values, not with the ranges.
source