if语句只有两个分支可供选择,而实际中常常用到多分支选择。例如成绩分类(85分以上为A,70-85为B,60-69为C等),人口的分类(可以分为老、中、青、少、儿童),工资统计分类等等,如果我们使用if语句就会嵌套很多层数,影响可读性。c语言提供的switch语句直接处理多分支选择。
用一个例子说明:
无时无刻不在的风格提醒:
程序说明
(1).等级grade定义为字符变量,从键盘输入一个大写字母,赋给变量grade,switch得到grade的值并和各case中给定的值(’a”b”c”d’之一)相比较,如果和其中之一相同,则执行该case后面的语句(即printf语句)。如果输入的字符与’a”b”c”d’都不相同,就执行default后面的语句,输出error!信息。
(2)注意每个case语句中,后面都有一个break语句,该语句的作用是使得当前流程跳转到闭括号’}’后面的语句。
假如去掉程序中所有break语句,用户从键盘输入b以后,输出70~84并换行以后,程序将执行case ‘c’:printf(“60~69\n”);语句,并且还要执行下去
通过上例我们已经基本了解了switch语句。
其一般形式如下:
switch(表达式)
{
case 常量1:语句1
case 常量2:语句2
.
.
.
case 常量n :语句n
default : 语句n+1
}
说明:
switch括号内的“表达式”,其值的类型应为整数类型或者字符类型,不可以是其他数据类型
default 语句为选择项,可有可无。另外,default 后面可以不加break语句