Switch – Case Statements
By: Er. Aman Kumar
Switch-Case Statements
way2ITech
• Switch case statement allows us to make decisions from multiple choices.
• Integer expression must yield an integer value like 1, 2, 3, etc. The keyword case is followed by an integer or a character constant.
• Each constant in each case must be different from all the others. The “do this” lines in the above form of switch represent any valid C statement.
way2ITech
way2ITech
• break always used with the switch statement to terminate the switch statement or to prevent the entry in other case.
way2ITech
way2ITech
way2ITech
The Tips and Traps
• It is not compulsory to put cases in ascending order as we did above. We can place them in any order we want.
way2ITech
You are also allowed to use char values in case and switch as
shown in the following program
(Program to find whether character entered is vowel or not)
way2ITech
way2ITech
Modified
Form
way2ITech
If a statement doesn’t belong to any case the compiler won’t report an error. However, the statement would
never get executed. For example, in the following program the printf( ) never goes to work.
way2ITech
• If there is no default in switch, then error will not be there. If no case is matching, statements after switch will execute.
• Relational Expression like i>5 are not allowed in any case. Even float values not allowed in any case
• We can check the value of any expression in a switch. Thus the following switch statements are legal.
switch ( i - j * k )
switch ( 3 + 9 % 4 * i )
switch ( a < 5 || b > 7 )
way2ITech
• Expressions can also be used in cases provided they are constant expressions. Thus case 13 + 7 is correct, however, case a + b is incorrect.
• switch may occur within another, but in practice it is rarely done. Such statements would be called nested switch statements.
• The switch statement is very useful while writing menu driven programs
• Even if there are multiple statements to be executed in each case there is no need to enclose them within a pair of braces (unlike if, and else).
way2ITech
switch Versus if-else Ladder
Disadvantages of switch over if-else
• A float expression cannot be tested using a switch
• Cases can never have variable expressions (for example it is wrong to say case a +3 : )
• Multiple cases cannot use same expressions. Thus the following switch is illegal:
way2ITech
Advantages of switch over if-else
• compiler generates a jump table for a switch during compilation. As a result, during execution it simply refers the jump table to decide which case should be executed, rather than actually checking which case is satisfied.
• As against this, if-else are slower because they are evaluated at execution time.
way2ITech