介绍
在C语言中,选择结构是控制程序流程的重要部分,其中多选一结构是常用的选择结构之一。本文将针对C语言中的多选一结构——switch进行详细介绍,包括其结构、执行过程、特点以及与if结构的对比。
switch的结构
switch的结构如下所示:
switch (匹配标签)
{
case 标签1:
code1;
break;
case 标签2:
code2;
break;
case 标签3:
code3;
break;
default:
}
switch的执行过程
- 用匹配标签与标签进行依次比较,相等的,就执行相应分支。
- 匹配标签是整型表达式。
- 标签是整型常量表达式。
- break的作用是跳出结构。
举例如下:
int a = 3;
switch (a)
{
case 1:
printf("case 1\n");
break;
case 2:
printf("case 2\n");
break;
case 3:
printf("case 3\n");
break;
default:
printf("default\n");
}
switch的特点
- 标签就是分支编号,不能重复。
- 编号不一定连续,是个整数即可。
- default相当于else,可以不用写。
- break的作用是跳出结构,最后一个分支不用写break。
- 标签只能是整数,小数直接报错。
- 标签内定义变量需要加大括号。
不写break
break的作用是中断跳出switch结构,没有break,对应的分支执行完不结束switch,继续执行下一个分支,直到遇见break或者switch结构结束。
举例如下:
int a = 2;
switch (a)
{
case 1:
printf("case 1\n");
break;
case 2:
printf("case 2\n");
//无break,执行完2继续执行3
case 3:
printf("case 3\n");
break;
//此处结束switch结构
default:
printf("default\n");
}
switch结构实现范围的思路
依赖上面的思路,判断变量a是否在2~8之间,a必须是整型。
int a = 2;
switch (a)
{
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
printf("在范围\n");
break;
default:
printf("不在范围\n");
}
switch与if的对比
- switch实现范围过于繁琐,如果范围加大,那么就要写更多case,而if可以写范围判断。
- switch不能涉及小数,if可以。
总结
本文对C语言中的多选一结构——switch进行了详细介绍,包括其结构、执行过程、特点以及与if结构的对比。相信读者在阅读完本文后,可以更好地理解并运用switch结构。