Switch Statement


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 constant-expression :
                              statement(s);
                                       break; /* optional */
         case constant-expression :
                             statement(s);
                                      break; /* optional */
                              /* you can have any number of case statements */
         default : /* Optional */
                              statement(s);
}


Rules For Switch Statement

  • The expression used in a switch statement must not have "float" or "double" datatype.
  • You can have any number of case statements within a switch. Each case is followed by the value to be compared to and a colon.
  • 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.
  • When the variable being switched on is equal to a case, the statements following that case will execute until a break statement is reached.
  • When a break statement is reached, the switch terminates, and the flow of control jumps to the next line following the switch statement.
  • Not every case needs to contain a break. If no break appears, the flow of control will fall through to subsequent cases until a break is reached.
  • 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.)

    Remark: Nested Switch is possible but you cannot declare or initialize any variable in between switch and case.

    switch(expression)
    {

            /*data_type identifier = constant ; // not allowed*/

              case constant-expression :

                            switch(expression)
                            {

                                    /*data_type identifier = constant ; // not allowed*/

                                      case constant-expression :      
                                                          statement(s);
                                                                  break; /* optional */
                                                          /* you can have any number of case statements */
                                     default : /* Optional */
                                                          statement(s);
                            }

                                          break; /* optional */
             case constant-expression :
                                 statement(s);
                                          break; /* optional */
                                  /* you can have any number of case statements */
             default : /* Optional */
                                  statement(s);
    }

    No comments:

    Post a Comment