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语句都可以实现,那么请问有没有孰优孰劣的区别?