为什么输出是这样的,而且i的值不是1吗?为什么第一行case1、2、3都能打印出来
另外就是最开始i不是等于0?switch循环一遍后才++不是?为什么第一行i直接就1了
因为每个case分支后没break,会执行匹配成功后面所有分支
while(i++) 该语句运行完 i=1
case里少了break,这段代码修改如下,供参考:
int i=0;
while(i<3){
switch(i){
case 0:printf("fat %d\n",i);break;
case 1:printf("hat %d\n",i);break;
case 2:printf("cat %d\n",i);break;
default:printf("Oh no!\n"); break;
}
putchar('\n');
i++;
}