问答详情
源自:4-16 分支结构之switch语句

不理解switch

不理解switch和case之间是什么关系怎么执行的,为什么case后边不是100,90,80这些

提问者:weibo_啊哈小明_0 2015-12-06 14:31

个回答

  • Virture
    2015-12-06 15:32:24
    已采纳

    switch(<条件>)
    {
    case 1 :<语句体>;break;
    case 2 :<语句体>;break;
    ……
    default:<语句体>;
    };

    当switch括号内的条件等于case 后面的常量表达式时,就会执行case后面的代码段

    例如:

    #include<stdio.h>
    int main()
    {
    double score;
    printf("请输入分数:\n");
    scanf("%lf",&score);
    switch((int)(score/10))//switch((int)score/10)出现严重错误
    {
    case 10:
    case 9:printf("A(最好)\n");break;
    case 8:printf("B(优秀)\n");break;
    case 7:printf("C(良好)\n");break;
    case 6:printf("D(及格)\n");break;
    case 5:
    case 4:
    case 3:
    case 2:
    case 1:
    case 0:
    printf("E(不及格)\n");break;
    default:
    printf("Error!\n");
    }
    }
    #include<stdio.h>
    intmain()
    {
    charrank;
    printf("请输入分数等级:(A、B、C、D、E)\n");
    scanf("%c",&rank);
    switch(rank)//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误,
    {
    case'A':printf("A(90~100)\n");break;
    case'B':printf("B(80~89)\n");break;
    case'C':printf("C(70~79)\n");break;
    case'D':printf("D(60~69)\n");break;
    case'E':printf("E(0~59)\n");break;
    default:printf("error!\n");break;
    }
    }