4.3从if-else到开关语句——错误实例分析(28分)

本文通过一个将百分制成绩转化为五分制成绩的实例,分析了if-else和开关(switch)语句在处理多分支选择时的优缺点。在程序中,为了确保输入数据的合法性,需要进行错误处理以增强程序的健壮性。文章指出,使用else-if级联或switch语句可以避免不必要的条件判断,提高程序的可读性和执行效率。通过压缩输入数据并利用switch语句,可以更高效地处理多种情况,同时强调了break语句在switch结构中的重要性以及default分支在处理非法数据中的作用。最后,文章提醒在程序测试中要涵盖边界情况,以发现潜在错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.3从if-else到开关语句——错误实例分析(28分)

多分支选择控制与开关语句
在这里插入图片描述
If语句主要实现单分支选择控制结构
而if-else主要用于实现双分支选择控制结构
而else-if级联形式用于实现多分支选择控制结构
在这里插入图片描述下面看一个实例,将百分之成绩转化为五分制成绩
转换公式是这样的,首先画出它的程序流程图
第一步就是输入百分制的成绩score
然后根据score的取值范围来确定它的五分制成绩是什么?
如果score是在大于等于90小于等于100之间的话;
那么就让gread这个五分制的成绩为A;
否则的话要判断sore是否在80和90之间;
如果是的话,那么就让股份制的成绩为B;
在这里插入图片描述在否则的话还要判断score是否大于等于70小于80.
如果是的话,就让五分制为C;
如果成绩不在0到100之间的话,我们就认为,用户输入错误,所以要输出一个错误提示信息。
否则的话,就输出前面的5分制成绩,然后成绩结束。那么在这个程序当中,为什么要增加这样的一个判断呢?why?为什么嘛要判断用户输入的数据是大于零小于100的。因为一个百分制的成绩,如果小于零或者大于100;那么我们就认为用户输入的百分制成绩输入错误了,通过在程序当中,增加对用户输入的错误数据的处理,使得成绩对用户输入的错误数据,具有容错能力。像这样的程序,我们就认为,具有一定的健壮性,因此在程序中,对用户的输入进行合法性检验,增加这样的一个处理步骤,对于提高程序的健壮性是非常重要的。
在这里插入图片描述下面这样的一个流程图呢,如何用C语言程序来实现。
通过分析这个流程图我们发现,前面的五个分支结构,都是单分支的选择结构,只有最后一个是双分支选择控制结构。
单分支选择控制结构我们用if语句来实现,而双分支选择结构我们用if-else来实现。在实现这个程序的时候,首先要定义两个变量,一个进入百分制成绩的整型变量score ;
int score
另外一个是记录五分制成绩的字符型变量grade
然后向屏幕输出一个提示信息,提示用户输入百分制成绩score
printf(“Please input socre;”)
接下来用scanf函数调用语句,接收用户从键盘输入的百分制成绩score的值。
scanf("%d,&score");
在这里插入图片描述在接下来,判断score是否在90到100之间,如果是的话,那么就让gread这个字符型变量的值为A
if(score>= 90 && score <=100)
grade =‘A’;在这里插入图片描述接下来,还要判断score,是否在80和90之间,如果是的话,就让gread为B,在否则的话,判断score是否是70到80之间,如果是的话,就让gread为C;
在这里插入图片描述最后这个是一个双分支选择结构,用if-else来实现;
当score的值<0,或者score>100的时候,输出input error这样的错误提示信息,否则的话,就输出前面计算出来的
grade,这个字符型变量的值。也就是五分制成绩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值