第9章简化条件表达式ppt课件.ppt

第9章简化条件表达式ppt课件.ppt

ID:59490136

大小:280.00 KB

页数:44页

时间:2020-09-13

第9章简化条件表达式ppt课件.ppt_第1页
第9章简化条件表达式ppt课件.ppt_第2页
第9章简化条件表达式ppt课件.ppt_第3页
第9章简化条件表达式ppt课件.ppt_第4页
第9章简化条件表达式ppt课件.ppt_第5页
资源描述:

《第9章简化条件表达式ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、9.1分解条件式复杂的条件语句从if、then、else三个段落中分别提炼出独立函数。if(date.before(SUMMER_START)

2、

3、date.after(SUMMER_END))charge=quantity*_winterRate+_winterServiceCharge;elsechareg=quantity*_summerRate;if(notSummer(data))charge=winterCharge(quantity);elsecharge=summerCharge(quantity);假设要计算购买某样商品的总价(总价=数量×单价〕,而这个商品在冬季和夏季的单价是

4、不同的:把每个分支的判断条件都提炼到一个独立函数中,如下所示:if(date.before(SUMMER_START)

5、

6、date.after(SUMMER_END))charge=quantity*_winterRate+_winterServiceCharge;elsechareg=quantity*_summerRate;if(notSummer(date))charge=winterCharge(quantity);elsechareg=summerCharge(quantity);privatebooleannotSummer(Datedate){returndate.before(

7、SUMMER_START)

8、

9、date.after(SUMMER_END);}privatedoublesummerCharge(intquantity){returnquantity*_summerRate;}privatedoublewinterCharge(intquantity){returnquantity*_winterRate+_winterServiceCharge;}9.2合并条件式一系列条件测试,都得到相同结果将这些测试合并为一个条件式,并将这个条件式提炼成为一个独立函数。doubledisablityAmount(){if(_seniority<2)return0;if(

10、_monthsDisabled>12)return0;if(_isPartTime)return0;}doubledisabilityAmount(){if(ifNotBligableForDisablility())return0;}确定这些条件语句都没有连带影响。使用适当的逻辑操作符,将一系列相关条件式合并为一个。编译,测试。对合并后的条件式提炼函数。连续的的条件检查,等价于一个以逻辑OR连接起来的语句:doubledisablityAmount(){if(_seniority<2)return0;if(_monthsDisabled>12)return0;if(_isPartTime)r

11、eturn0;}doubledisablityAmount(){if(_seniority<2)

12、

13、(_monthsDisabled>12)

14、

15、(_isPartTime)return0;}然后,在新条件式中提炼出一个独立函数,以函数名称表达该语句所检查的条件doubledisabilityAmount(){if(ifNotBligableForDisablility())return0;}BoolenifNotBligableForDisablility(){return((_seniority<2)

16、

17、(_monthsDisabled>12)

18、

19、(_isPartTime));}9.3合并重复

20、的条件片段在条件式的每个分支上有相同的一段代码。将这段代码搬移到条件式之外。找出执行方式不随条件变化而变化的代码:如果这些代码位于条件式起始处,就将它移到条件式之前如果这些代码位于条件式尾端,就将它移到条件式之后。如果这些代码位于条件式中段,需要观察共同代码之前或之后的代码是否改变其他代码。如果有所改变,应该首先将共同代码向前或向后移动,移至条件式的起始处或尾端,再以前面所说的办法来处理。如果代码不止一条语句,将共同代码提炼到独立函数中,再以上述方法处理。由于条件式的两个分支都执行了send()函数,所以将该部分代码移到条件式的外围:if(isSpecialDeal()){total=pric

21、e*0.95;send();}else{total=price*0.98;send();}if(isSpecialDeal())total=price*0.95;elsetotal=price*0.98;send();9.4移除控制标记在布尔表达式中,某个变量待遇控制标记的作用以break语句或return语句取代控制标记方法:找出跳出这段逻辑的控制标记值。用break或continue代替不符合

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。