C语言之switch语句详解

1.switch语句的一般形式

    switch属于多分支选择语句,它的一般形式如下:

switch(表达式)

 {

   case 常量表达式 1:零条或多条语句;

   case 常量表达式 2:零条或多条语句;

                      default:零条或多条语句;

}

说明:

(1)括号内的“表达式”,其值可以是整型、字符型、枚举型,不能为浮点型

(2)case的组成结构:关键字case;紧随其后的常量值或常量表达式;再紧接着冒号;

 

2.switch语句执行

例子1

	int i;
	printf("输入:");
	scanf("%d",&i);
	switch(i)
	{
	case  1: printf("case 1
");
	case  2: printf("case 2
");
	default: printf("other!
");
	}

输入:1

结果:case 1

           case 2

           other!

这称之为“fall through”,它的意思是,如果case语句后面不加break,就依次执行下去!

例子2

	int i;
	printf("输入:");
	scanf("%d",&i);
	switch(i)
	{
	case  1: printf("case 1
");break;
	case  2: printf("case 2
");break;
	default: printf("other!
");break;
	}

 输入:1

 结果:case 1

由此可知,break可以终止流程的进行!

说明switch语句缺点就是它不会在每个case标签后面的语句执行完毕后自动中止,一旦执行某个case语句,程序就执行后面的所有case,除非遇到break语句。