swith case 语句在未加break,并且case语句顺序不按照case后常量表达式的值顺序时,程序执行顺序分析。
程序源文件 switch_case_test.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int a;
char fileName[100] = "switch_case_test.c";
char lineContents[100];
int i, n;
FILE *filePointer = NULL;
filePointer = fopen(fileName, "rt");
for(i=0; i<100; i++)
{
fgets(lineContents, 100, filePointer);
if((i>21)&&(i<33))
{
printf("%s", lineContents);
}
}
fclose(filePointer);
printf("Pls input integer number: ");
scanf("%d", &a);
switch(a)
{
case 1: printf("It is Monday!\n");
case 4: printf("It is Thursday!\n");
case 5: printf("It is Friday!\n");
case 6: printf("It is Saturday!\n");
default :printf("Input error number!\n");
case 2: printf("It is Tuesday!\n");
case 3: printf("It is Wednesday!\n");
case 7: printf("It is Sunday!\n");
}
return 0;
}
程序执行:
maemo@ll:switch_case_test$ ./switch_case_test
switch(a)
{
case 1: printf("It is Monday!\n");
case 4: printf("It is Thursday!\n");
case 5: printf("It is Friday!\n");
case 6: printf("It is Saturday!\n");
default :printf("Input error number!\n");
case 2: printf("It is Tuesday!\n");
case 3: printf("It is Wednesday!\n");
case 7: printf("It is Sunday!\n");
}
Pls input integer number: 5
It is Friday!
It is Saturday!
Input error number!
It is Tuesday!
It is Wednesday!
It is Sunday!
maemo@ll:switch_case_test$
以上测试可以看出在case语句后未加入break时,执行完case后的语句将继续执行后续的语句:case 6, default, case 2, case 3, case 7。