i dont understand why those two,have different output
there are two simple c programms
int main()
{
    int i;
    for (i = 0;i<3; i++)
            {
              switch (i++)
              {
               case 0:
               {
                 printf("zero");
               }
               case 1:
               {
                printf("one");
               }
               case 2:
               {
               printf("two");
               break;
               }
              default:
               {               
                printf("end");
               }                
        }
     }
}
this give this output:zero one two two
in this case after switch when the value from variable i change 0 to 1?
int main()
{
    int i;
    for (i = 0;i<3; i++)
     {
         switch (++i)
         {
            case 0:
            {
                printf("zero");
            }
            case 1:
            {
                printf("one");
            }
            case 2:
            {
                printf("two");
                break;
            }
            default:
            {             
                printf("end");
            }   
        }
     }
}  
this give this output:one two end
 
     
     
     
    