Switch Case in C++
Switch Case in C++
The switch statement in C++ language is used to execute the code from multiple conditions or case. It is same like if else-if ladder statement.
A switch statement work with byte, short, char and int primitive data type, it also works with enumerated types and string.
Syntax
switch(expression or variable) { case value: //statements // any number of case statements break; //optional default: //optional //statements }
Flow chart
Rules for apply switch
- The switch expression must be of integer or character type.
- With switch statement use only byte, short, int, char data type.
- With switch statement not use float data type.
- You can use any number of case statements within a switch.
- The case value can be used only inside the switch statement.
- Value for a case must be same as the variable in switch.
Valid statement for switch
Switch Case in Example C++
int x; byte y; short z; char a,b;
Limitations of switch Case in C++
Logical operators can not be used with switch statement. For instance
Example
case k>20&&k=20: // is not allowed
Switch case variables can have only int and char data type. So float data type is not allowed.
case 4.2: // Invalid
Syntax
switch(ch) { case 1: statement 1; break; case 2: statement 2; break; }
In this ch can be integer or char and can not be float or any other data type.
Rulse table of switch
Valid Switch | Invalid Switch | Valid Case | Invalid Case |
---|---|---|---|
switch(a) | switch(2.3) | case 3; | case 2.5; |
switch(a>b) | switch(a+2.5) | case 'a'; | case x; |
switch(a+b-2) | case 1+2; | case x+2; | |
switch(func(a,b)) | case 'a'>'b'; | case 1,2,3; |
Example of Switch Case in C++
#include<iostream.h> #include<conio.h> void main() { int ch; clrscr(); cout<<"Enter any number (1 to 7)"; cin>>ch; switch(ch) { case 1: cout<<"Today is Monday"; break; case 2: cout<<"Today is Tuesday"; break; case 3: cout<<"Today is Wednesday"; break; case 4: cout<<"Today is Thursday"; break; case 5: cout<<"Today is Friday"; break; case 6: cout<<"Today is Saturday"; break; case 7: cout<<"Today is Sunday"; break; default: cout<<"Only enter value 1 to 7"; } getch(); }
Output
Enter any number (1 to 7): 5 Today is Friday
Note: In switch statement default is optional but when we use this in switch default is executed at last whenever all cases are not satisfied the condition.
Example of Switch without break in C++
#include<iostream.h> #include<conio.h> void main() { int ch; clrscr(); cout<<"Enter any number (1 to 7)"; cin>>ch; switch(ch) { case 1: cout<<"Today is Monday"; case 2: cout<<"Today is Tuesday"; case 3: cout<<"Today is Wednesday"; case 4: cout<<"Today is Thursday"; case 5: cout<<"Today is Friday"; case 6: cout<<"Today is Saturday"; case 7: cout<<"Today is Sunday"; default: cout<<"Only enter value 1 to 7"; } getch(); }
Output
Enter any number (1 to 7): 4 Today is Thursday Today is Friday Today is Saturday Today is Sunday
Note: In switch statement when you not use break keyword after any statement then all the case after matching case will be execute. In above code case 4 is match and after case 4 all case are execute from case-4 to case-7.
C++ program for calculator
Example Calculator
#include<iostream.h> #include<conio.h> void main() { char choice; int a,b,res=0; clrscr(); cout<<"Enter first value: "; cin>>a; cout<<"\n Enter operator: "; choice=getch(); cout<<"\n Enter second value: "; cin>>b; switch(choice) { case '+': res=a+b; cout<<"Sum: ",res; break; case '-': res=a-b; cout<<"Difference: ",res; break; case '*': res=a*b; cout<<"Product: ",res; break; case '/': res=a/b; cout<<"Quotient: ",res; break; default: cout<<"Enter Valid Operator!"; } getch(); }
Output
Enter First number: 6 Enter operator : + Enter Second number: 10 Sum: 16
Explanation: In above code choice=getch(); is used for scan or get one value by using getch() function from keyboard, and store is choice.