• switch语句(初学者)


    C语言提供了另一种用于多分支选择的switch语句(常用于开关),一般形式为:

    switch ( 常量表达式 )
    {
    case 常量1 :语句;
    case 常量2 :语句;
    case 常量3 :语句;
    ...
    case 常量n:语句;
    default :语句;
    }
    语义:计算常量表达式的值,并逐个与其后的常量值相比较,当表达式的值与某个常量值相等时,即执行其后语句,然后不再进行判断,继续执行后面所有case后的语句。若表达式的值与所有case后的常量值均不同时,则执行default语句。
    错例:
    #include<stdio.h>
    
    void main()
    {
        int a;
        printf("input integer number:");
        scanf("%d",&a);
        switch(a)
        {
        case 1:printf("Monday
    ");
        case 2:printf("Tuesday
    ");
        case 3:printf("Wednesday
    ");
        case 4:printf("Thursday
    ");
        case 5:printf("Friday
    ");
        case 6:printf("Saturday
    ");
        case 7:printf("Sunday
    ");
        default:printf("error
    ");
        }
    }

    为避免上述输出时出现的情况,C语言提供了一种break语句,专用于跳出switch语句,break语句只有关键字break,没有参数。

    正例:

    #include<stdio.h>
    
    void main()
    {
        int a;
        printf("input integer number:");
        scanf("%d",&a);
        switch(a)
        {
        case 1:printf("Monday
    ");break;
        case 2:printf("Tuesday
    ");break;
        case 3:printf("Wednesday
    ");break;
        case 4:printf("Thursday
    ");break;
        case 5:printf("Friday
    ");break;
        case 6:printf("Saturday
    ");break;
        case 7:printf("Sunday
    ");break;
        default:printf("error
    ");break;
        }
    }

    注意:(1)在case后的各常量表达式的值不能相同,否则会出现错误。

    (2)在case后允许有多个语句,可以不用{}括起来。

    (3)各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

    (4)default子句可以省略不用。

    (5)只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。

    (6)switch()的参数类型不能为实型 。
    (7)case标签必须是常量表达式(constantExpression),如42或者"42"。
    例:
    #include<stdio.h>
    int main()
    {
        char rank;
        printf("请输入分数等级:(A、B、C、D、E)
    ");
        scanf("%c",&rank);
        switch(rank)    
        {
            case'A':printf("A(90~100)
    ");break;
            case'B':printf("B(80~89)
    ");break;
            case'C':printf("C(70~79)
    ");break;
            case'D':printf("D(60~69)
    ");break;
            case'E':printf("E(0~59)
    ");break;
            default:printf("error!
    ");break;
        }
     
  • 相关阅读:
    is 和 == 的区别,utf和gbk的转换,join用法
    python字典的整理信息
    poj分类
    cloud computing
    POJ1007 关于STL排序方法 动态数组的创建 和向量的使用
    math类
    研究生考试感想
    4.11
    重看设计模式 观察者模式
    子串计算 2010北京大学复试机试题
  • 原文地址:https://www.cnblogs.com/lvfengkun/p/10241611.html
Copyright © 2020-2023  润新知