Wednesday, 27 March 2019

Switch Statement in C

Switch case statements are a substitute for long if statements that compare a variable to several integral values. A switch statement allows a variable to be tested for equality against a list of values. Each value is called a case, and the variable being switched on is checked for each switch case.

Syntax:
switch(expression){
    case  value1 :              // code to be executed if expression = value1;
              statement 1;
               ……………
              ………………
              Break;//optional

    case  value2 :     // code to be executed if expression = value2;
              statement 1;
               ……………
              ………………
              Break;//optional

    case  value3 :   //// code to be executed if expression = value3;
              statement 1;
               ……………
              ………………
              Break;//optional

    case  value4 :      // code to be executed if expression = value4;
              statement 1;
               ……………
              ………………
              Break;//optional

    case  value5 :        // code to be executed if expression = value5;
              statement 1;
               ……………
              ………………
              Break;//optional

    case  valueN :  //// code to be executed if expression = valueN;
              statement 1;
               ……………
              ………………
              Break;//optional

  Default :   // code to be executed if value of expression doesn't match any cases
             Statement1;
            ………………………
           
}

Important Points about Switch Case Statements:
  1. The expression provided in the switch should result in a constant value otherwise it would not be valid.
  2. Duplicate case values are not allowed.
  3. The default statement is optional.
  4. The break statement is used inside the switch to terminate a statement sequence. When a break statement is reached, the switch terminates, and the flow of control jumps to the next line following the switch statement.
  5. The break statement is optional. If omitted, execution will continue on into the next case. The flow of control will fall through to subsequent cases until a break is reached.
  6. The constant-expression for a case must be the same data type as the variable in the switch, and it must be a constant or a literal.
  7. When the variable being switched on is equal to a case, the statements following that case will execute until a break statement is reached.
  8. A switch statement can have an optional default case, which must appear at the end of the switch. The default case can be used for performing a task when none of the cases is true. No break is needed in the default case.
Example:
//program to create simple calculator
#include<stdio.h>
int main(){
   int num1,num2,result;
   char operator; 
  
   printf("Enter operator(+,-,*,/,%):\n");
   scanf("%c",&operator);
   printf("Enter two positive integers:\n");
   scanf("%d %d",&num1,&num2);

  switch(operator){
    case '+' :
               result=num1+num2;
               break;
    case '-' :
               result=num1-num2;
               break;

    case '*' :
               result=num1*num2;
               break;

    case '/' :
               result=num1/num2;
              
               break;
    case '%' :
               result=num1%num2;
              
               break;
    default :
               printf("Invalid operator!");
  }
   
  printf("Result of %c on %d and %d is %d.\n",operator,num1,num2,result);
  return 0;
}
Output:

Please comment if you find anything incorrect, or you want to improve the topic discussed above.

No comments:

Post a Comment