马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我们已见过,当要选择多个中的一个时,可以使用if语句来控制其选择。但是,随着可选项数量的增加,这种程序的复杂性将快速增长。程序将变得难以阅读和理解。有时,即使是设计人员自己也会迷惑。幸运的是,C语言具有一个内置的名为swich的多路判断语句。switch语句吧给定变量的值与case的值进行比较,如果发现有一个匹配,那么就运行该case相关的语句块。switch语句的一般形式为: switch(expression) { casevalue-1: block-1; break; casevalue-2: block-2; break; default: default-block; break; } statement-x; expression是一个整数表达式或字符。value-1,value-2,…为常量或常量表达式,称为case标签。在switch语句内这些值应是唯一的。block-1.block-2,…为语句列表,可含有零个或多个语句。这些语句块不必用括号括起来。注意,case标签是以冒号结尾的。 当运行switch语句时,expression的值与value-1,value-2,…的值进行比较,如果发现了某个case的值与expression的值匹配,就运行该case后面的语句块。 每个语句块的末尾为break语句。它标志着该case的结尾,并使控制权从该switch语句中退出来,转移到switch后面的statement-x。 Default是一个可选项。当它出现时表示,如果expression的值与所有case值都不匹配,那么就运行default后面的语句。如果没有它,那么当多有匹配都失效时,不进行任何动作,而是把控制权转交给switch后面的statement-x语句。 switch语句的选择过程如图的流程图所示。 file:///C:/Users/xin.jin/AppData/Local/Temp/msohtml1/01/clip_image002.gif 下面用switch语句来写一个给学生评级的示例程序,可以用switch语句来改写。具体如下: ...... index =marks/10; switch(index) { case10: case9: case8: grade="Honours"; break; case7; case6; grade="FirstDivision"; break; case5; grade="SecondDivision"; break; case4; grade="ThirdDivision"; break; default; grade="Fail"; break; } printf("%s\n",grade); ...... 注意,我们这里使用了一个转换语句: index =marks/10; 其中,变量index被定义为整数。它具有如下的整数值。 marks index 100
10 90~99 9 80~89 8 … … 0
0 程序的代码段说明了两个重要特性。首先,它使用了空的case语句。头三个case都运行相同的语句: grade ="Honours"; break; case7和case6也是如此。第二,缺省条件用于所有得分小于40的情况。 switch语句经常用于菜单选择。例如: ...... printf("TRAVEL GUIDE\n\n"); printf("A Air Timings\n"); printf("T Train Timings\n"); printf("X To skip\n"); printf("\n Enter you choice\n"); character=getchar(); switch(character) { case'A': air-display(); break; case'B': bus-display(); break; case'T': train-display(); break; default: printf("Nochoice\n"); } ...... 也可以嵌套switch语句。也就是说,一个switch语句可以是某个case语句的一部分。 switch语句的使用规则 switch表达式必须是整型的。 case标签必须是常量或常量表达式。 case标签必须是唯一的。不允许两个标签具有相同的值。 case标签必须以冒号结尾。 break语句把控制权转出switch语句。 default标签是可选的。如果有,当表达式找不到一个相匹配的case标签时,将运行default语句。 最多只能由一个default标签。 default可以房子任意位置,但通常放在末尾。 switch语句允许嵌套。 凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com |