
1.switch语句的概念
一个单位需要同时为不同级别的人增加各自不同的工资。
一个班主任需要根据学生成绩的不同分数段进行不同的成绩评定。
在C语言中需要通过switch语句(开关、分情况)来处理的。
2.switch语句格式
3.语句执行过程
第1步:计算出语句关键字switch后面圆括号内<表达式>的值,用M表示;
第2步:让M依次同每个case子句标号常量1、常量2、...依次进行比较,执行对应标号后面的语句序列;在碰不到相等的情况下,若存在default子句,则就执行此子句冒号后面的语句序列,否则不执行任何操作。
语句格式举例
举例1:
int c0=0,c1=0,c2=0,n;
scanf("%d",&n);
switch(n%3) {
case 0: c0++; break;
case 1: c1++; break;
case 2: c2++; break;
}
举例2:
switch(ch) { //其值为M
case 'a':
case 'A': printf("优秀\n"); break;
case 'b':
case 'B': printf("良好\n"); break;
case 'c':
case 'C': printf("一般\n"); break;
default: printf("较差\n");
}
使用switch语句的程序举例
#include
#include<stdlib.h>
void main()
{//把0~15之间的一个整数,输出对应的十六进制的数字字符
int x;
printf("输入0~15之间的一个整数:");
scanf("%d",&x);
if(x<0 || x>15) {printf("输入数据不正确!\n"); exit(1);}
switch(x) {
case 10: printf("%c", 'A'); break;
case 11: printf("%c", 'B'); break;
case 12: printf("%c", 'C'); break;
case 13: printf("%c", 'D'); break;
case 14: printf("%c", 'E'); break;
case 15: printf("%c", 'F'); break;
default: printf("%c",x+48); break;
}
printf("\n");
}
使用switch语句编程举例
要求:根据从键盘上输入的两个整数和一个二目算术运算符求出运算结果。
分析
在程序开始包含stdio.h头文件;
定义两个整数变量为x和y,定义一个字符变量为op;
定义一个整数变量为z,z=x op y,此计算需要使用switch语句;
程序中只需一个主函数,完成变量定义,数据输入,计算和输出。
#include<stdio.h>
#include<stdlib.h>
void main() {
int x,y,z; char op;
printf("输入两个整数和一个运算符: ");
scanf("%d %d %c",&x,&y,&op);
if((op=='/' || op=='%') && y==0) {printf("除数为0");exit(1);}
switch (op) {
case '+': z=x+y; break;
case '-': z=x-y; break;
case '*': z=x*y; break;
case '/': z=x/y; break;
case '%': z=x%y; break;
default: {printf("运算符错!\n");exit(1);}
}
printf("%d %c %d = %d\n",x,op,y,z);
}
程序运行结果:
输入两个整数和一个运算符: 50 8 /
50 / 8 = 6