#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;
}
```
总而言之,只要没有遇到break,就会继续执行其他后续语句;遇到break,就会跳出语句。
可以结合前面图片再理解下。
你在case9后面加个break就不会了,不加的话就是只要参数是9或10都可以执行case10后面的语句,而且你可以去试试,你前面的case0,case1,case2。。。等等也是执行的case5的语句
case语句在没有break时会继续执行下一个case,直到结束或则遇到break结束
你的case9没有break ,没有break就会按顺序结构依次往下执行
switch (grade)
case 1:
printf();
break;
.......
default:
break;