上节课我们学习了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; }