The switch…case statement is a multiple branching statement where the control is transferred to one of the many possible conditions by checking the value of a variable or an expression. The switch statement consists of different cases inside it and the statements inside the case matching the condition is executed. If no cases are matched, the statements inside default block are executed.
Switch case are similar to if statements. But when a large number of conditions are to be checked, switch case are more suitable than if statements. It reduces programmers burden of using multiple else if statements. The switch case make program more easy to understand in such case.
Syntax of switch…case
switch (variable or expression) { case value1: statement(s); break; case value2: statement(s); break; ... ... ... ... ... ... case valueN: statement(s); break; default: statement(s); break; }
Flowchart for switch…case
break Statement
The break statement is used to break out of a loop or a switch case. In switch..case, if a case is matched then, all the cases below it are executed. So, break statement is used after each case in order to break out of switch..case after a case has been matched.
Syntax of break Statement
break;
C++ examples for switch case statement
Example 1: C++ program to determine if a letter is vowel or consonant (not using break)
#include <iostream> #include <conio.h> using namespace std; int main() { char c; cout <<"Enter a alphabet:"; cin >> c; c=tolower(c); switch (c) { case 'a': cout <<"You entered a, its a vowel"<<endl; case 'e': cout <<"You entered e, its a vowel"<<endl; case 'i': cout <<"You entered i, its a vowel"<<endl; case 'o': cout <<"You entered o, its a vowel"<<endl; case 'u': cout <<"You entered u, its a vowel"<<endl; default: cout <<"You entered consonant"; } getch(); return 0; }
Output
Enter a alphabet:i You entered i, its a vowel You entered o, its a vowel You entered u, its a vowel You entered consonant
Example 2: C++ program to determine if a letter is vowel or consonant (using break)
#include <iostream> #include <conio.h> using namespace std; int main() { char c; cout <<"Enter a alphabet:"; cin >> c; c=tolower(c); switch (c) { case 'a': cout <<"You entered a, its a vowel"<<endl; break; case 'e': cout <<"You entered e, its a vowel"<<endl; break; case 'i': cout <<"You entered i, its a vowel"<<endl; break; case 'o': cout <<"You entered o, its a vowel"<<endl; break; case 'u': cout <<"You entered u, its a vowel"<<endl; break; default: cout <<"You entered consonant"; } getch(); return 0; }
Output
Enter a alphabet:i You entered i, its a vowel
The above two examples explain the importance of break statement in switch case. Both programs do the same thing i.e. asks an alphabet from user and if it is vowel, identifies which vowel it is else display it is consonant. But the only difference is, there is use of break statement is second example. So, only the statements inside matching case are executed by second example while the first example executes all the statements below the matching case.
Example 3: C++ program to check percentage of a student and display division(distinction, first, second, third or fail)
#include <iostream> #include <conio.h> using namespace std; int main() { float percent; int x; cout<<"Enter your percentage: "; cin>>percent; cout<<"You scored "<<percent<<"%"<<endl; x = percent/10; switch (x) { case 10: case 9: case 8: cout<<"You have passed with distinction"; break; case 7: case 6: cout<<"You have passed with first division"; break; case 5: cout<<"You have passed with second division"; break; case 4: cout<<"You have passed with third division"; break; default: cout<<"Sorry: You have failed"; } getch(); return 0; }
This program asks the percentage of a student and display which division he/she has got. The criteria for division is displayed below:
Percentage | Division |
>=80 | Distinction |
>=60 and <80 | First division |
>=50 and <60 | Second Division |
>=40 and <50 | Third Division |
<40 | Fail |
According to the condition, a switch case is created and the results are displayed.
Output
Enter your percentage: 89 You scored 89% You have passed with distinction
Enter your percentage: 47 You scored 47% You have passed with third division