代码大全第二版读书笔记 第四部分-语句 十四、组织直线型代码 十五、使用条件语句
来源:互联网 发布:python基础教程第四版 编辑:程序博客网 时间:2024/04/28 13:12
组织直线型代码(P347)
1.必须有明确顺序的语句(P347)
如果语句之间存在依赖关系,并且这些关系要求你把语句按照一定的顺序加以排列,那么请设法使得这些依赖关系变得明显。
- 设法组织代码,使依赖变得明显
- 使子程序名能凸显依赖关系
- 利用子程序参数明确显示依赖关系
'暗示顺序依赖关系的数据InitializeExpenseData( expenseData);ComputeMarketingExpense( expenseData);ComputeSalesExpense( expenseData);ComputeTravelExpense( expenseData);ComputePersonnelExpense( expenseData);DisplayExpenseSummary( expenseData);'表示没有顺序依赖关系的数据ComputeMarketingExpense( marketingData);ComputeSalesExpense( salesData);ComputeTravelExpense( travelData);ComputePersonnelExpense( personnelData);DisplayExpenseSummary( marketingData,salesData,travelData,personnelData);- 用注释对不清晰的依赖关系进行说明
- 用断言或者错误处理代码来检查依赖关系
2.顺序无关的语句(P351)
1)使代码易于自上而下地阅读
作为一条普遍性原则,要让程序易于自上而下阅读,而不是让读者的目光跳来跳去。专家们认为自上而下的顺序对提高可读性最有帮助。//跳来跳去的糟糕代码MarketingData marketingData;SalesData salesData;TravelData travelData;travelData.ComputeQuarterly();salesData.ComputeQuarterly();marketingData.ComputeQuarterly();salesData.ComputeAnnual();marketingData.ComputeAnnual();travelData.ComputeAnnual();salesData.Print();travelData.Print();marketingData.Print();//组织良好的顺序代码,能从头到尾阅读MarketingData marketingData;marketingData.ComputeQuarterly();marketingData.ComputeAnnual();marketingData.Print();SalesData salesData;salesData.ComputeQuarterly();salesData.ComputeAnnual();salesData.Print();TravelData travelData;travelData.ComputeQuarterly();travelData.ComputeAnnual();travelData.Print();
2)把相关的语句组织在一起
同上所述。
使用条件语句(P355)
1.if语句(P355)
1)简单if-then语句
- 首先写正常代码路径;再处理不常见情况
- 确保对于等量分支是正确的
请不要用“>”代替">="等情况出现- 把正常情况的处理放在if后面而不要放在else后面
- 让if子句后面跟随一个有意义的语句
- 考虑else子句
//有益的、带注释的else子句if( COLOR_MIN <= color && color <= COLOR_MAX){//do something...}else {//else color is invalid//screen not written to -- safely ignore command}- 测试else子句的正确性
- 检查if和else子句是不是弄反了
2)if-then-else语句串
- 利用布尔函数调用简化复杂的检测
- 把最常见的情况放在最前面
- 确保所有的情况都考虑到了
- 如果你的语言支持,请把if-then-else语句串替换成其他结构
2.case语句(P361)
1)为case选择最有效的排列顺序
- 按字母顺序或按数字顺序排列各种情况
- 把正常的情况放在前面
- 按执行频率排列case子句
2)使用case语句的诀窍
- 简化每种情况对应的操作
- 不要为了使用case语句而刻意制造一个变量
与其刻意制造一个本不适用于case的假冒变量,不如使用一个if-then-else-if检测串来检查整个字符串。- 把default子句只用于检查真正的默认情况
- 利用default子句来检测错误
- 在C++和Java里,避免代码执行越过一条case子句的末尾
- 在C++里,在case末尾明确无误地标明需要穿越执行的程序流程
如果要你故意让代码越过某一case子句末尾的话
0 0
- 代码大全第二版读书笔记 第四部分-语句 十四、组织直线型代码 十五、使用条件语句
- 《代码大全》读书笔记--组织直线型代码、使用条件语句
- 代码大全学习总结——直线型代码、条件语句
- 代码大全第二版读书笔记 第四部分-语句 十六、控制循环
- 代码大全第二版读书笔记 第四部分-语句 十七、不常见的控制结构
- 代码大全第二版读书笔记 第四部分-语句 十九、一般控制问题
- 《代码大全》学习笔记:第十四章,组织直线型代码
- 【代码大全】第14章 组织直线型代码
- 第十四章--组织直线型代码
- 代码大全学习-顺序语句,条件语句
- 代码大全第二部分 (包含第四章)
- 代码大全学习-18-使用条件语句(Using Conditionals)
- 【代码大全】第15章 使用条件语句
- 代码大全第15章,使用条件语句
- 代码大全第二版读书笔记 第三部分-变量 十、使用变量的一般事项
- 读书笔记------代码大全(第二版)
- 代码大全第二版读书笔记 第二部分-创建高质量的代码 八、防御式编程
- 代码大全第二版读书笔记 第五部分-代码改善 二十二、开发者测试
- swingworker类中的哪些方法里面可以写GUI相关的代码?
- 关于生成并发唯一性流水号的解决方案
- JQuery基础入门
- Andriod 4.4.2 模拟器不能切换横竖屏
- i2c_set_clientdata函数
- 代码大全第二版读书笔记 第四部分-语句 十四、组织直线型代码 十五、使用条件语句
- WCF BasicHttpBinding 安全解析(8)Message安全模式(iis宿主)
- CopyOnWriteArrayList详解
- 光耦
- 【算法学习笔记】17.暴力求解法05 隐式图搜索1 迭代加深搜索 埃及分数
- android selector 开始自定义样式
- uva 10954 Add All
- codeforces 398B Painting The Wall (概率dp)
- 关于高速光耦6N137的使用总结