上节课我们学习了if,else,else if这些选择判断。这节课我们学习switch,这并不是游戏机,而是一个很灵活的选择判断,并且很简短。
引出:菜单例子 添加一个学生---1。删除一个学生---2。浏览学生信息---3。退 出 系 统---4。
格式:
switch(匹配标签)
{
case ID1: 语句1;break;
case ID2: 语句2;break;
.....
default: 缺省语句;
}
分析:匹配标签可以为变量,值。他会逐条往下执行碰到匹配标签和ID一样的他就执行他下面的语句,其他的就不执行。如:匹配标签为1.ID有1,2,3,4.那么他会执行1下面的语句,执行完下面的语句就会直接跳过其他的。如果他不是第一个就会逐条的判断ID是否与匹配标签一样。
注意点:switch后面没分号,case后面是冒号,case和ID之间要有空格,ID后面要有冒号,break要有.switch里面要有break。ID和匹配标签不能为浮点型即有小数的数。在case下面的语句中定义变量要有{}才行
default:当ID里没有对应的匹配标签则执行default下面的语句,他也需要break
总结:在switch case里面的尽量加上break,要不然会出问题。
对比:if 适合复杂条件,比如范围,浮点型比较,复合表达式(与、或、非), switch就不方便。switch就用于简单的操作。
菜单例子:在这不实现实际功能,只表示一个外观,如想要真的,请等待我出学生管理系统。
#include <stdio.h>
int main(void)
{
while (1)
{
int a;//定义学生年龄
int b;//定义匹配标签
//提示
printf("1-添加学生\n");
printf("2-删除一个学生\n");
printf("3-浏览学生信息\n");
printf("4-退出系统\n");
//输入
printf("输入:");
scanf_s("%d", &b);
//switch
switch (b)
{
case 1://功能1
printf("输入年龄:");
scanf_s("%d", &a);
printf("\n添加成功");
break;
case 2://功能2
printf("敬请期待");
break;
case 3://功能3
printf("敬请期待");
break;
case 4://功能4
printf("结束使用");
return 0;
break;
default://输入错误
printf("请重新输入,你输入的有误");
break;
}
}
system("pause>0");
return 0;
}
|