关于switch问题

来源:4-16 分支结构之switch语句

madness_j

2018-05-05 21:47

为什么这样不行

#include <stdio.h>

int main() 

{

    int score = 87; //考试分数为87分 

    

    switch(score)

    {

        /*想想以下代码为什么用这种方式;

          这种方式的好处?*/

        

        case 1:

            if(score>=90)

            printf("等级A");

            break;

        case 2:

            if(score>=80)

            printf("等级B");

            break;                //这里是不是缺点什么?            

        case 3: 

            if(score>=60)

            printf("等级C");

            break;                //这里是不是缺点什么?  

        case 4:

            if(score<60)

            printf("等级D");

            break;    

    }

    return 0;

}为什么不行


写回答 关注

4回答

  • 慕田峪3667243
    2018-05-10 19:35:20

    switch语句本身就是一个判断语句,一般情况下可以直接判断,除非一些特别复杂的,switch(x)对应casex:,你懂我的意思把

  • 慕田峪3667243
    2018-05-10 19:33:26

    #include <stdio.h>
    int main()
    {
        int score = 87; //考试分数为87分
       
        switch(score)
        {
            /*想想以下代码为什么用这种方式;
              这种方式的好处?*/
           
            case 1:
              
                printf("等级A");
                break;
            case 87:
              
                printf("等级B");
                break;                //这里是不是缺点什么?           
            case 3:
              
                printf("等级C");
                break;                //这里是不是缺点什么? 
            case 4:
              
                printf("等级D");
                break;   
        }
        return 0;}

    然后我把你所有的if去掉,也成功输出b,从这里可以看出来你的if语句是多余判断

  • 慕田峪3667243
    2018-05-10 19:31:47
    我试了一下,输出一个空结果,#include <stdio.h>int main() {    int score = 87; //考试分数为87分         switch(score)    {        /*想想以下代码为什么用这种方式;          这种方式的好处?*/                case 1:            if(score>=90)            printf("等级A");            break;        case 2:            if(score>=80)            printf("等级B");            break;                //这里是不是缺点什么?                    case 3:             if(score>=60)            printf("等级C");            break;                //这里是不是缺点什么?          case 4:            if(score<60)            printf("等级D");            break;        }    return 0;}
    score=87然后开始运行switch语句也就是switch(87)我试了一下把case2改成case87成功输出b

  • qq_空白_300
    2018-05-05 22:26:53

    #include <stdio.h>

    int main() 

    {

        int score = 87; //考试分数为87分 

        score/=10; //强制我写的,,,int  87/10=8;所以执行case 8; 

        switch(score)

        {

            /*想想以下代码为什么用这种方式;

              这种方式的好处?*/

            case 10:

            case 9:

                printf("等级A");

                break;

            case 8:

                printf("等级B");

                break;          //这里是不是缺点什么?            

            case 7:

            case 6: 

                printf("等级C");

                break;          //这里是不是缺点什么?  

            default:

                printf("等级D");

                break;    

        }

        return 0;

    }


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926027 学习 · 20793 问题

查看课程

相似问题