一 例子引入
#include<stdio.h>
int main()
{char grade;scanf("%c",&grade);printf("Your score:");switch (grade){case 'A': printf("85~100\n"); break;case 'B': printf("70~84\n");break; case 'C': printf("60~69\n'");break;case 'D': printf(" <60\n");break;default: printf("enter data error! \n");} return 0:
}
对程序分析解读:
等 级 grade定义为字符变量 ,从键盘输人一个大写字母, 赋给变量grade , switch得到grade 的值并把它和各case中给定的值 ( ' A ' ,' B ' ,' C ' ,’ D ' 之 一 )相比较 ,如果和其中之一相同,则执行该case 后面的语句(即printf 语句)。输出相应的信息。如果输人的宇符与' A',’B','C',‘D'都不相同,就执行default 后面的语句,输出“输人数据有错”的信息。注意在每个case 后面后的语句中,最后都有一个break语句,它的作用 是使流程转到switch语句的末尾(即右花括号处)。流程图如下
二 switch 的一般形式如下
switch(表达式)
{case 常量1: 语句1 break;case 常量2: 语句2 break;case 常量n: 语句n break;default: .. 语句n+1 break;
}
switch
后面括号中的表达式通常是整型或字符型,case
后面跟的常量表达式必须是与表达式类型相同的常量值。当表达式的值与某个 case
后的常量表达式值相等时,就执行该 case
后面的语句,直到遇到 break
语句或者 switch
语句结束。如果没有匹配的 case
值,则执行 default
后面的语句。