执行过程不懂!忘记的差不多了

#include <stdio.h>
main( )
{
int a=123456,b;
while(a){b = a%10;
a /= 10;
switch(b){
default: printf(" %d", b++);
case 1: break;
case 2: printf(" %d", b++); break;
case 3: printf("%d", b++);
case 4: printf("%d",b++);
case 5: printf(" %d" , b++);}}}

主要是case大部分没有带break,会一直执行后续的case 代码

记住这个就好了
case后没有break就会往下穿透执行

img


#include <stdio.h>
main( )
{
int a=123456,b;
while(a){b = a%10;
a /= 10;
printf("\n");
printf("a:%d  b:%d\n",a,b);
switch(b){
default: printf("%d  \n", b++);
case 1: break;
case 2: printf("%d  \n", b++); break;
case 3: printf("%d  \n", b++);
case 4: printf("%d  \n",b++);
case 5: printf("%d  \n" , b++);}}}