问大家一个关于switch的问题
函数如下:#include <stdio.h>int main(void)
{
int i=0;
while(i<3)
{
switch(i++)
{
case 0:printf("fat");
case 1:printf("hat");
case 2:printf("cat");
default:printf("OH no!");
}
putchar('\n');
printf("###");
}
return 0;
}
输出的结果如下:
fathatcatOH no!
###hatcatOH no!
###catOH no!
###
对于这个结果我有个问题没想明白:1、i的初始值=0,然后进入while循环,然后进入switch选择语句,i初值为0,所以为case0,打印fat,跳出switch语句,打印回车和###。i自加1,此时i=1;
2、再进入while循环,重复上面的过程,打印hat,此时i=2;
3、再进入while循环,重复上面的过程,打印cat,此时i=3;
3、再进入while循环,重复上面的过程,打印oh no,此时i=3;
4、跳出while循环,程序结束。
所以打印的值不应该是:
fat
###
hat
###
cat
###
oh no!
###
这个问题一直没想清楚,请求各位大神给小弟解释一下!