看了代码大全 中间有关控制流程语句的篇章.觉得里面有几点讲的确实挺不错的..记录一下
17.1布尔表达式
布尔表达式简化方法:
1把复杂的测试条件用中间的布尔变量变成几个部分..
2把复杂的表达式写成一个布尔函数
3.用决策表代替复杂的测试条件
增加可读性:
1.在IF语句中..把条件从否定形式变成肯定形式.再把IF和ELSE语句后面跟着的代码对换
2. 应用Demorgen定律去简化否定形式的判断条件
初始表达式 相应表达式
not A and not B not(A or B)
not A and B not(A or not B)
A and B not(not A and not B)
not A or not B not(A and B)
3.用括号使布尔表达式清晰
布尔表达式的运行:些语言先计算各个分量的值.然后合起来计算整个式子的值....另一些语言的编译程序则采用"短路"算法..只需计算 部分的值...也就是说如果某部分的值能够确实整个式子的值.那就不再继续往下运算...如C和PasCal就是采用"短路"算法.
17.2复合语句
对于IF这种要尽量避免三层以上的嵌套 ,程序的可读性会大大的降低.简化方法如下
1.通过重新编写部分测试条件来减少IF嵌套
2.把IF嵌套变成ELSE语句
3.把深层嵌套的语句转换成一个子程序
4.重新生成深层嵌套代码
17.5 结构化编程
结构化编程有三个方面:顺序编程.选择..重复
1.结构化编程不是缩排编写的方法,这种方法对程序的结构没有好处
2.结构化的编程不是自上而下的设计..这只是一些细节上面的问题
3.结构化编程不是节约时间的技巧
个人认为,结构化编程只是针对于子函数代码的要求..面向对象是在架构层面上对系统的要求..而结构化编程是对于一个子函数代码的要求..如必须单入单出..一种程序只能有一个进入口.同时也只能有一个出口..像一个需要返回值的函数..如果存在太多的return语句,..这会大影响到程序的可读性..这时候应该建立一个临时变量..将结果赋值勤给它..然后再返回这个临时变量的值
17.7控制结构和复杂性
1.计算程序复杂性的方法:
从1 开始一直往下通程序.碰到if,while and or,for等关键字或同类关键字需要加1..case每一种情况加1.如果没有缺省情况再加1..这样如果计数在1-5之间.则说明程序的可读性非常好..如果在5-10则说明要去简化..如果10 以上则要把部分代码写成子程序并在原程序中调用.
17.1布尔表达式
布尔表达式简化方法:
1把复杂的测试条件用中间的布尔变量变成几个部分..
2把复杂的表达式写成一个布尔函数
3.用决策表代替复杂的测试条件
增加可读性:
1.在IF语句中..把条件从否定形式变成肯定形式.再把IF和ELSE语句后面跟着的代码对换
2. 应用Demorgen定律去简化否定形式的判断条件
初始表达式 相应表达式
not A and not B not(A or B)
not A and B not(A or not B)
A and B not(not A and not B)
not A or not B not(A and B)
3.用括号使布尔表达式清晰
布尔表达式的运行:些语言先计算各个分量的值.然后合起来计算整个式子的值....另一些语言的编译程序则采用"短路"算法..只需计算 部分的值...也就是说如果某部分的值能够确实整个式子的值.那就不再继续往下运算...如C和PasCal就是采用"短路"算法.
17.2复合语句
对于IF这种要尽量避免三层以上的嵌套 ,程序的可读性会大大的降低.简化方法如下
1.通过重新编写部分测试条件来减少IF嵌套
2.把IF嵌套变成ELSE语句
3.把深层嵌套的语句转换成一个子程序
4.重新生成深层嵌套代码
17.5 结构化编程
结构化编程有三个方面:顺序编程.选择..重复
1.结构化编程不是缩排编写的方法,这种方法对程序的结构没有好处
2.结构化的编程不是自上而下的设计..这只是一些细节上面的问题
3.结构化编程不是节约时间的技巧
个人认为,结构化编程只是针对于子函数代码的要求..面向对象是在架构层面上对系统的要求..而结构化编程是对于一个子函数代码的要求..如必须单入单出..一种程序只能有一个进入口.同时也只能有一个出口..像一个需要返回值的函数..如果存在太多的return语句,..这会大影响到程序的可读性..这时候应该建立一个临时变量..将结果赋值勤给它..然后再返回这个临时变量的值
17.7控制结构和复杂性
1.计算程序复杂性的方法:
从1 开始一直往下通程序.碰到if,while and or,for等关键字或同类关键字需要加1..case每一种情况加1.如果没有缺省情况再加1..这样如果计数在1-5之间.则说明程序的可读性非常好..如果在5-10则说明要去简化..如果10 以上则要把部分代码写成子程序并在原程序中调用.