switch语句与if-else语句的比较?
第一次代码:(带有明显的if-else语句思维,运行错误那是肯定的)
#include<stdio.h>
int main()
{
int score = 87 ;
switch(score)
{
case(score>=90 && score <= 100):
printf("等级A\n");
break;
case(score>=80 && score < 90):
printf("等级B\n");
break;
case(score>=60 && score < 80):
printf("等级C\n");
break;
default:
printf("等级D\n");
break;
}
return 0;
}第二次代码:(干脆尝试直接用if-else语句实现)
#include<stdio.h>
int main()
{
int score = 87 ;
if(score>=90 && score <= 100)
{
printf("等级A\n");
}
else if(score>=80 && score < 90)
{
printf("等级B\n");
}
else if(score>=60 && score < 80)
{
printf("等级C\n");
}
else
{
printf("等级D\n");
}
return 0;
}第三次代码:(题目想要的结果)
#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;
}第一次是错的,属于逻辑混乱,就不说了。
想讨论一下对于这道题目而言,switch语句和if-else语句都可以实现,那么请问有没有孰优孰劣的区别?