这道题为什么这么写呢?
比如说,他考了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;
}
比如说,他考了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;
}
也可以直接在switch(score)那改成 switch(score、10) 这个是switch 语句
#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; }