输入数据合法性测试的思考

对于一般的函数,测试输入数据的时候,要从两个角度来判断数据是否合法。

一是数据类型,如要求的参数是整形,就不能输入浮点型,要求的是双精度,最后就不要是float类型,要求的是无符号,最好就不要带符号。

二是数据范围,如要求是非负数,要求是素数。

我感觉一般而言,是将数据类型的测试放在输入之后进行,而对于数据范围的测试再放到需要用到数据的函数内部进行,比较不容易混乱。

例如要实现判断是否为三角形的函数,输入参数设定为三个整形,在判断是否能构成三角形之前首先要进行数据的合法性测试。

如果想要在函数内部进行数据的类型测试就很难,因为如果传递的是三个float型的实参,在函数调用的时候已经被隐式转换成了int类型,所以如果再函数运行的时候输入的是float类型的参数,就无法判断出错误来。

(在函数内部测试数据的类型的一种方法:可以将函数的形参设为字符串类型,传入保存有原始数据的字符串,然后遍历字符串检测是否符合数据类型的要求

如要判断是否为float类型,可以遍历传入的字符串数组,若数组的所有元素都是数字且小数点只出现了一次,且

所以数据类型测试放在函数体外,在调用函数的时候确保实参和形参的类型一定要是相同的!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值