The switch Statement example in Java

By: Kamini  

Unlike if-then and if-then-else, the switch statement allows for any number of possible execution paths. A switch works with the byte, short, char, and int primitive data types. It also works with enumerated types and a few special classes that "wrap" certain primitive types: Character, Byte, Short, and Integer.

The following program, SwitchDemo, declares an int named month whose value represents a month out of the year. The program displays the name of the month, based on the value of month, using the switch statement.


class SwitchDemo {
    public static void main(String[] args) {

        int month = 8;
        switch (month) {
            case 1:  System.out.println("January"); break;
            case 2:  System.out.println("February"); break;
            case 3:  System.out.println("March"); break;
            case 4:  System.out.println("April"); break;
            case 5:  System.out.println("May"); break;
            case 6:  System.out.println("June"); break;
            case 7:  System.out.println("July"); break;
            case 8:  System.out.println("August"); break;
            case 9:  System.out.println("September"); break;
            case 10: System.out.println("October"); break;
            case 11: System.out.println("November"); break;
            case 12: System.out.println("December"); break;
            default: System.out.println("Invalid month.");break;

In this case, "August" is printed to standard output.

The body of a switch statement is known as a switch block. Any statement immediately contained by the switch block may be labeled with one or more case or default labels. The switch statement evaluates its expression and executes the appropriate case.

Of course, you could also implement the same thing with if-then-else statements:

int month = 8;
if (month == 1) {
} else if (month == 2) {
. . . // and so on

Deciding whether to use if-then-else statements or a switch statement is sometimes a judgment call. You can decide which one to use based on readability and other factors. An if-then-else statement can be used to make decisions based on ranges of values or conditions, whereas a switch statement can make decisions based only on a single integer or enumerated value.

Another point of interest is the break statement after each case. Each break statement terminates the enclosing switch statement. Control flow continues with the first statement following the switch block. The break statements are necessary because without them, case statements fall through; that is, without an explicit break, control will flow sequentially through subsequent case statements. The following program, SwitchDemo2, illustrates why it might be useful to have case statements fall through:

class SwitchDemo2 {
    public static void main(String[] args) {

        int month = 2;
        int year = 2000;
        int numDays = 0;

        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                numDays = 31;
            case 4:
            case 6:
            case 9:
            case 11:
                numDays = 30;
            case 2:
                if ( ((year % 4 == 0) && !(year % 100 == 0))
                     || (year % 400 == 0) )
                    numDays = 29;
                    numDays = 28;
                System.out.println("Invalid month.");
        System.out.println("Number of Days = " + numDays);

This is the output from the program.

    Number of Days = 29

Technically, the final break is not required because flow would fall out of the switch statement anyway. However, we recommend using a break so that modifying the b is easier and less error-prone. The default section handles all values that aren't explicitly handled by one of the case sections.

Archived Comments

1. if ((year % 4 == 0) && (year % 400 == 0) )
this code is sufficient for execution

View Tutorial          By: nav at 2017-03-09 04:55:17

2. nice
View Tutorial          By: utkarsh at 2015-03-10 03:18:26

3. I want to using swith with string...
How to use the string in switch case.
Please give

View Tutorial          By: anuj at 2015-03-04 18:22:29

4. can for statement be used in a switch statement for the looping of digits obtain from a user
View Tutorial          By: Osei Quadwo at 2014-10-08 20:12:17

5. find gud looking hasband and well educated
View Tutorial          By: manpreet kaur at 2014-09-10 11:10:53

6. I need to get the brief notes on this example

View Tutorial          By: Racchana Srini at 2014-07-29 07:50:22

7. Write a program to input the number and use switch case to find?
1-largest digit.

View Tutorial          By: abdulaziz at 2014-03-28 16:22:35

8. How would you use a switch statement to determine if a number input by a user is positive or negativ
View Tutorial          By: Shivak at 2013-09-27 01:48:41

9. its a big help!..thankz
View Tutorial          By: mezer at 2013-07-17 05:34:07

10. import java.util.Scanner;
public class SwitchDemo {
public static void main(String

View Tutorial          By: srinath at 2013-04-28 10:17:24

11. @Jai Shankar K

I'm guessing you are not really that familiar with leap years. That's

View Tutorial          By: Nick Scroggs at 2013-03-26 01:44:04

12. why it is( ((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0) ) we can only only (
View Tutorial          By: Jai Shankar K at 2012-04-08 10:15:56

Most Viewed Articles (in Java )

Latest Articles (in Java)

Comment on this tutorial