m0_66394588 2022-03-25 22:23 采纳率: 91.5%
浏览 34
已结题

想问关于switch语句的问题,问题在//后面。

#include<stdio.h>

int main()
{
    int grade;
    float score;
    printf("请输入成绩:");
    scanf("%f",&score);
    
    if(score>100||score<0)
    {
        printf("输入成绩错误"); 
    }
    else
    {
        grade=(int)score/10; 
    }    
    switch(grade)
    { 
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:printf("不及格");break;
        case 6:printf("及格");break;
        case 7:printf("中等"); break;
        case 8:printf("良好");break;
        case 9:
        case 10:printf("优秀");break;/*我了解到的switch语句的知识是执行对应case后面常量的部分,为什么case 9后面没输入命令但是会执行case10后面的语句呢*/
     } 
     return 0;
}


```

  • 写回答

5条回答 默认 最新

  • breeze亭瞳 2022-03-26 11:20
    关注

    img

    img

    img

    img


    switch语句的步骤是:
    1.计算表达式的值
    2.找到与表达式值相同的case常量表达式,执行
    case后边的语句序列,之后转去执行Switch的后续语句。
    (也就是说只要,它会先找与它值对应的case语句,先执行自己对应的语句,像case1后面是空,所以它自己的,就会是空的,之后再继续执行后续的其他case对应的语句,如果遇到beak这种会跳出语句的,才不会执行语句)

    总而言之,只要没有遇到break,就会继续执行其他后续语句;遇到break,就会跳出语句。

    可以结合前面图片再理解下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分