分享

case语句

 共同成长888 2013-12-13

case语句



4.3 多分支选择结构

在C语言中还提供了一种多路判定语句switch,在这种结构里可以实现,一个条件符合时程序执行若干条语句。

1、语法形式

switch(表达式)

{   case 常量表达式1:语句序列1

    case 常量表达式2:语句序列2

            .

            .

            .

    case 常量表达式n:语句序列n

    default: 语句序列n+1

}

其中,

①switch、case和default是C语言关键字,default是可以缺省的项;

②switch后的表达式必须为整型或字符型表达式;

③case后的常量表达式称为标号,且标号须互不相同,case与标号之间必须留有空格;

④必要时,某些case标号后的语句序列可以不写,但冒号不可省;

⑤语句序列可以是一条也可以是多条,且多条不需组合成复合语句。

2、执行过程

首先计算switch后表达式的值,然后寻找与其相等的case标号,如果找到了则从该case后的语句序列开始执行下去,不再进行判断,直至遇break或switch结构结束;如果没有找到与switch表达式的值相等的case标号,则执行default后的语句序列或退出switch结构(default缺省的情况下)。

这里提到了break,它是一个使程序立即从switch结构或循环中退出的语句,在下一章会详细介绍。具体程序中到底要不要使用break,需要针对实际问题而定。

3、举例

设变量grade是字符型的,代表成绩的等级,以下程序段则实现根据学生成绩的等级来输出相应的分数范围:

switch(grade)

{case ‘A’:printf(“90~100\n”);break;

case ‘B’:printf(“80~89\n”); break;

case ‘C’:printf(“70~79\n”); break;

case ‘D’:printf(“60~69\n”); break;

case ‘E’:printf(“ 0~59\n”); break;

default: printf(“error!\n”);

}

执行以上程序段时,若grade的值为‘A’则输出结果是:90~100回车;若grade的值为‘D’则输出结果是:60~69回车;若grade的值超出A-E这五个等级之外,例如’G’则输出结果是:error!回车。

如果将所有的break语句去掉,程序变成:

switch(grade)

{case ‘A’:printf(“90~100\n”);

case ‘B’:printf(“80~89\n”);

case ‘C’:printf(“70~79\n”);

case ‘D’:printf(“60~69\n”);

case ‘E’:printf(“ 0~59\n”);

default: printf(“error!\n”); }

则程序找到一个入口之后会一直执行到switch结束,例如,若grade的值为‘C’则输出结果是:70~79

60~69

0~59

error!

显然,后面三行的信息我们是不需要的,所以实际应用中要善于使用break语句。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多