switch代替if else实现学生成绩等级的判定,switch实现域的判定

       前一段时间遇到了学生成绩判断的问题,刚开始用if else来做的,感觉逻辑上挺简单的,但是我想同样作为条件判断,switch可以吗?

首先利用if判断条件可以表示一定范围内的成绩,但是switchcase是一个确定的值,如何解决呢,不知大家是否还记得强制类型转换呢,例如 score/10=8就可以表示成绩大于等于80小于90,通过这个例子我们得到了启发,以此类推我们就可以利用switch来判断学生的成绩了。

具体代码如下:

#include<stdio.h>

double score;
int a;

int main()
{

printf("Please enter student's score:\n");
scanf("%lf",&score);
a=score/10;

switch(a)
{
case 10:
case 9:printf("优秀\n");break;
case 8:printf("良好\n");break;
case 7:printf("中等\n");break;
case 6:printf("及格\n");break;
default:printf("不及格\n");
}

return 0;
}

 

我们再来看看用if else判断的代码:

#include<stdio.h>

double score;
int main()
{
printf("请输入学生的分数:");
scanf("%lf",&score);
if(score>=90)
 printf("优秀\n");
else if(score>=80)
printf("良好\n");
else if(score>=70)
 printf("良好\n");
else if(score>=60)
 printf("及格\n");

else
 printf("不及格\n");
return 0;
}

由于条件判断项不是太多,所以不明显,当条件判断项比较多的时候,我们就会发现switch的优势,在这里把自己的感悟分享给大家,有不到位的希望大家多多批评指教。

 



 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值