也说if-else语句
2011-01-06 22:12
225 查看
最近在工作中遇到一些条件判断的语句, 情景如下:
1. 用户输入的聚合统计方式只能允许两种情况, MAX(...)和MIN(...)
2. 输入解释模块根据情况把前面的四个字符截取下来然后进行比较匹配 记为strSummaryWay
我看到这段程序这么处理:
if ( summaryWay == 'MAX(' )
按求最大值处理;
else
按求最小值处理;
很明显,这是一个不完备的判断表达方式. 没有考虑到输入的情况可能是MAX和MIN以外的其他情况, 而就想当然的以为不是MAX就是MIN. 修改以后的处理方式应该为:
if ( strSummaryWay == 'MAX(' )
按求最大值处理;
else if ( strSummaryWay == 'MIN(' )
按求最小值处理;
else
返回错误或者抛出异常(根据程序需要);
从这一个简单的处理方式, 我也警醒自己,
1. 要对判断处理做到完备性考虑.
2. 具体对于if-else条件判断, 如果不是非此即彼的关系, 把最后一个else用来处理异常的情况.
3. 一个函数中如果有1%的可能性出错误,那要执行10次, 20次类似的都是1%可能性出错的函数那出现一次错误的机率是相当高的!
1. 用户输入的聚合统计方式只能允许两种情况, MAX(...)和MIN(...)
2. 输入解释模块根据情况把前面的四个字符截取下来然后进行比较匹配 记为strSummaryWay
我看到这段程序这么处理:
if ( summaryWay == 'MAX(' )
按求最大值处理;
else
按求最小值处理;
很明显,这是一个不完备的判断表达方式. 没有考虑到输入的情况可能是MAX和MIN以外的其他情况, 而就想当然的以为不是MAX就是MIN. 修改以后的处理方式应该为:
if ( strSummaryWay == 'MAX(' )
按求最大值处理;
else if ( strSummaryWay == 'MIN(' )
按求最小值处理;
else
返回错误或者抛出异常(根据程序需要);
从这一个简单的处理方式, 我也警醒自己,
1. 要对判断处理做到完备性考虑.
2. 具体对于if-else条件判断, 如果不是非此即彼的关系, 把最后一个else用来处理异常的情况.
3. 一个函数中如果有1%的可能性出错误,那要执行10次, 20次类似的都是1%可能性出错的函数那出现一次错误的机率是相当高的!
相关文章推荐
- Matlab之if-else-end分枝语句
- 5.9成绩if-else语句
- Python if elif else语句
- Python3使用独立的if语句与使用if-elif-else结构的不同之处
- 求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)
- 详解Java编程中if...else语句的嵌套写法
- JavaScript If...Else、Switch、For、While、Break、Continue语句
- if语句既执行if里的内容又执行else里的内容??不存在的(事件冒泡)
- 流程控制-if-else语句
- JavaScript学习笔记15-if-else语句
- 用数组代替if-else和switch-case语句
- if/else语句匹配问题
- go语言if/else语句简单用法示例
- Python-if-elif-else语句
- C语言选择语句的使用---if()-else和switch--case
- VBS-IF语句中用到ELSE时THEN后必须回车
- angularjs的if、else语句
- 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句
- c语言:不用if,else语句,也不用循环条件等,输入一个字符,判断是否为大写字母
- Java条件语句之 if...else