开关语句
switch(n) // n可以是数值,可以是表达式,但运算结果必须是整数
{
case val: //val必须是整数常量 如果val等于n,则相当于打开了执行开关,break负责关闭
...
break; //关闭执行开关
case val:
...
default:
...
//如果所有的case都没有匹配成功,则打开该执行开关,并且放在任何位置都会成功执行
}
注意:如果每个 case 后都有 break 就形成了多分支结构
switch 语句不能与 continue 配合使用
int num = 1;
switch(num*5)
{
case 0: printf("---0---\n"); break;
case 1: printf("---1---\n"); break;
case 2: printf("---2---\n"); break;
case 3: printf("---3---\n"); break;
default: printf("---end---\n"); break;
}
注意: case a ... b :可以辨识一个范围a~b 但是属于gnu编译器独有的语法,不建议使用
练习:输入一个月份,判断季节
1 2 3 春天
4 5 6 夏天
7 8 9 秋天
10 11 12 冬天
other 输入季节有误
int month;
printf("输入月份:");
scanf("%d",&month);
switch(month)
{
case 1 ... 3: printf("春天"); break;
case 4 ... 6: printf("夏天"); break;
case 7 ... 9: printf("秋天"); break;
case 10 ... 12: printf("冬天"); break;
default: printf("输入月份错误"); break;
}