[ create a new paste ] login | about

Link: http://codepad.org/CFmS5BEZ    [ raw code | output | fork | 1 comment ]

joshua_cheek - C, pasted on Nov 19:
#include <stdio.h>

void case_test( int outter , int inner )
{
  printf( "before switch: outter=%d , inner=%d\n" , outter , inner );

  switch (outter) {
  case 1:   printf( "outter = one"   ); break;

  case 2:   printf( "outter = two"   ); break;

  case 3:   switch(inner)
            case 4:   printf( "outter = three , inner = four"   ); break;
            case 5:   printf( "outter = three , inner = five"   ); break;
            default:  printf( "outter = three , inner is not four or five"); break;
  }

  printf("\n\n");
}

int main(int argc, char **argv)
{
  case_test(3,4);
  case_test(3,3);
  case_test(4,4);
  return 0;
}


Output:
1
2
3
4
5
6
7
8
9
before switch: outter=3 , inner=4
outter = three , inner = four

before switch: outter=3 , inner=3


before switch: outter=4 , inner=4
outter = three , inner is not four or five



Create a new paste based on this one


Comments:
posted by joshua_cheek on Nov 19
Showing that the default statement belongs to the outside switch, not the inside switch. This can cause problems similar to those seen with dangling if else statements.
reply