1.代码:
#include<stdio.h>
void main ()
{
char temp[10] = {'y','u','h','a','o','j','i','n','k'};
int i;
char* p = temp;
for(i=0; i<5; i++)
{
switch(*(p+i))
{
case 'y':
printf("y\n");
break;
case 'u':
printf("u\n");
continue;
case 'h':
printf("h\n");
break;
default:
printf("Invalid character!!\n");
break;
}
printf("loop is %d\n",i);
}
}
2.结果:
y
loop is 0
u
h
loop is 2
Invalid character!!
loop is 3
Invalid character!!
loop is 4
3.总结
continue只对for循环有效,遇到continue直接执行下一次循环,switch后面的printf("loop is %d\n",i)不会执行;break语句对for 和 switch都有效,上述例子,break在switch里面,优先对switch有效,所以遇到break则直接退出switch语句,但是后面printf("loop is %d\n",i)语句会继续执行。看了好多人写的解释,太啰嗦了,按照自己的想法写个测试程序,运行一下就都清楚了,还是需要多动脑、多动手。