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

小明期末考试分数为87分,在代码编辑器中完善代码使其输出结果为: 等级B

这道题为什么这么写呢?

提问者:你不在多久了 2015-01-22 19:28

个回答

  • 我的仰视30
    2015-01-24 22:52:15

    比如说,他考了87分,那么87/10等于8,如果他考了93分,那么93/10等于9,也就是说,可以先通过score/10来取十位数,然后看switch语句中有case多少与之对应,然后依次执行完,遇到break就终止了,不会继续往下执行。例如:把程序中的case 8下面的那个break去掉,那么运行结果就是等级B等级C,因为遇到break才跳出switch,你可以在想想。如下:


    #include <stdio.h>

    int main() 

    {

        int score = 87;   

        score/=10;

        

        switch(score)

        {

            

            case 10:

            case 9:

                printf("等级A");

                break;

            case 8:

                printf("等级B");

                               

            case 7:

            case 6: 

                printf("等级C");

                break;               

            default:

                printf("等级D");

                break;    

        }

        return 0;

    }


  • 我的仰视30
    2015-01-24 16:33:44

    比如说,他考了87分,那么87/10等于8,如果他考了93分,那么93/10等于9,也就是说,可以先通过score/10来取十位数,然后看switch语句中有case多少与之对应,然后依次执行完,遇到break就终止了,不会继续往下执行。例如:把程序中的case 8下面的那个break去掉,那么运行结果就是等级等级C,因为遇到break才跳出switch,你可以在想想。如下:

    #include <stdio.h>

    int main() 

    {

        int score = 87;

        score/=10;

        switch(score)

       {

            case 10:

            case 9:

                printf("等级A");

                break;

            case 8:

                printf("等级B");

                                     

            case 7:

            case 6: 

                printf("等级C");

                break;                

            default:

                printf("等级D");

                break;    

        }

        return 0;

    }


  • 带你而战
    2015-01-22 23:04:15

    也可以直接在switch(score)那改成 switch(score、10)  这个是switch 语句

  • 康振宁
    2015-01-22 20:13:02

    #include <stdio.h>
    int main() 
    {
        int score = 87; //考试分数为87分 
        score /= 10; 
        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;
    }