Skip to content
Home » C++ switch-case Statements

C++ switch-case Statements

    The switch-case statements are similar to if-else-if construct – a multiple decision maker. It allows you to choose a constant (a switch) that matches with a case (constant) and executes all statements that follow the matched case.

    The main difference between if-else-if construct and switch-case is that the if-else-if uses multiple conditions at each level. The switch-case on the other hand, use only constants to choose a case and execute statements. The general format for switch-case is given below.

    switch(ch)
    {
        case 1:
            statement1;
            statement2;
            break;
        case 2:
            statement3;
            statement4;
            break;
        default:
            statement5;
            break;
    }

    Points to Remember

    • The switch can only take integer constants, or character constants. Do not use float, expression or strings.
    • Value that follow case must be integer constant or character constant, must not be float, expression or strings.
    • Each case is terminated using break statement.

    When to use if-else-if and switch-case?

    It is very hard to tell when to use switch-case or if-else-if constructs, but when you have many expressions to test at different level then if-else-if is suitable.

    The switch-case is like choosing from a menu, you make a choice with a single character and if a case matches it executes the statements under that case. If no case matches then the default case executes its statements.

    For example,

    if (num > 100)
    {
        do something;
    }
    else if(num == 100)
    {
        do something;
    }
    else
    {
        do something;
    }

    The above if-else-if code can be implemented using switch-case, but without conditions and only with a constant value.

    switch(ch)
    {
        case 1:  // num > 100
            do something;
        break;
        case 2: // num == 100
            do something;
        break;
        default: //  num < 100
            do something;
        break;
    }

    Both are similar, but, for the switch-case we need to write conditions for each case. Hence, if-else-if is more clear and better choice.

    Graphical Representation of switch-case

    The graphic representation of a program is necessary to understand the algorithm of a C++ program. You can use this diagram to represent a switch-case statement in the program.

    switch-case Diagram
    switch-case Diagram

    Example Program:

    // Program to display weekday using switch-case
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    int main()
    {
        //Variable declaration
        
        int ch;
        
        //Read input value
        
        cout << "Enter a Number between 1 to 7 to Display Weekday:";
        cin >> ch;
        
        //using switch-case to display weekday
        
        switch(ch)
        {
                  case 1:
                       cout << "It is Monday" << endl;
                       break;
                  case 2:
                       cout << "It is Tuesday" << endl;
                       break;
                  case 3:
                       cout << "It is Wednesday"<< endl;
                       break;
                  case 4:
                       cout << "It is Thrusday" << endl;
                       break;
                  case 5:
                       cout << "It is Friday" << endl;
                       break;
                  case 6:
                       cout << "It is Saturday" << endl;
                       break;
                  case 7:
                       cout <<"It is Sunday" << endl;
                       break;
                  default:
                          cout << "Wrong Input ! Enter number between 1-7" << endl;
                          break;
        }
                   
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    Output:

    Enter a Number between 1 to 7 to Display Weekday:5
    It is Friday