Switch case MCQ 10 : Shift Operators in Switch



C Programming shift operators in switch case

void main()
{
 int choice = 1 ;
 switch(choice << 1)
 {
  case 2:
        printf("Case 2");
        break;
  case 4:
        printf("Case 4");
        break;
  case 8:
        printf("Case 8");
        break;
 }
}

Explanation :

In this example we have used shift operators in switch case statements. The shift operators are of two types left shift.

int choice = 1 ;
 switch(choice << 1)
 {

In this code line we need to analyze which case label we will be executing ?

choice << 1 = Left shift Integer 1 by 1 bit
            = 0000 0000 0000 0001 << 1
            = 0000 0000 0000 0010
            = Equivalent to Integer 2
            = Case 2

In this situation, case 2 will be executed. If we shift it by 2 bits then case 4 will be executed

choice << 1 = Left shift Integer 1 by 1 bit
            = 0000 0000 0000 0001 << 2
            = 0000 0000 0000 0100
            = Equivalent to Integer 4
            = Case 4