switch-case语句在未加break时的执行顺序

swith case 语句在未加break,并且case语句顺序不按照case后常量表达式的值顺序时,程序执行顺序分析。

程序源文件 switch_case_test.c

#include 

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。

你可能感兴趣的:(C/C++)