# 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.

Contents

## 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.

## Example Program:

// Program to display weekday using switch-case
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
//Variable declaration

int ch;

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

Bestseller

Object-Oriented Programming with C++ – 8th Edition

Object-oriented programming with C++, 8th edition is here with some valuable updates. The new edition helps students to assess their learning by answering questions based on learning outcomes. Objective-type questions and dry-run questions are introduced to make students exam ready. A new appendix on interview questions is for those seeking to join the industry. The book is designed for students studying at the undergraduate level. It provides all-inclusive concepts and programs on object-oriented programming with C++ as an implementation language.

• 150+ multi-choice questions
• 100+ dry-run exercises
• 90+ interview questions
• Two new projects and more