1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。
3、switch后面的表达式语句的值只能是整型或者字符类型。
4、在case后,允许有多个语句,可以不用{}括起来。
5、各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
6、default子句可以省略不用。
给个例子:
小明参加期末考试,分数等级分为A-D,等级划分方式如下:
90<=分数<=100 ,等级为A。
80<=分数<90 ,等级为B。
60<=分数<80 ,等级为C。
分数<60 ,等级为D。
小明期末考试分数为87分,在代码编辑器中完善代码使其输出结果为: 等级B
codes:
/**************************************
*author: Yang Xu
*assignment: switch test
*ground: change the score into grade
***************************************/
#include<stdio.h>
#include<process.h>
int main()
{
int a=97;//定义成绩a
char x;//定义等级
/***************************************
*swith 后面的表达式的值要求为整型或字符型
*进入switch后a变量的空间被释放
*case 后面的只要是常量表达式就行,不管是直接常量还是间接常量(#define)
****************************************/
switch(a/10)
{
default:
x='D';
break;
case 3:
case 4:
x='C';
break;
case 10:
case 9:
case 8:
x='A';
break;
case 7:
case 6:
case 5:
x='B';
break;
}
/**********************************************
*switch的工作原理是
*1.先跳到最适合的case,并执行
*2.然后一股脑向下执行(所有语句),直到遇到break
***********************************************/
printf("等级%c\n",x);
system("pause");
return 0;
}