2009-02-17读书记录:《代码大全》(第一版)第十六章——少见的控制结构
2009-02-17 20:19
495 查看
goto语句
这个语句一直都是饱受争议的,但整体看来还是反对的人占大多数。记得专门有一本书来写goto的坏处。我本人也不太喜欢这条语句,会破坏程序的结构性,并且使用多了跳来跳去毫无顺序可言。但是至今仍有很多语言还是支持goto的,证明它的存在还是有一定价值的。
return语句
这个语句可以从一个子程序中退出,可以使子程序从正常的出口退出到调用它的程序中去。文章中粗体说明“减少每个程序中return语句”,但不是说不要使用return。刚学javascript的时候,好像是每个方法都要有一个return语句,既然什么都不返回,也要写上这个语句,表明程序正确的执行完毕并且回到了被调程序。
递归语句
递归语句很好用,可以用很小的几句语句解决很大的问题,但用好递归语句可不是一件容易的事情。本人常常为递归而苦恼,虽然我已经很了解递归,并且能够分析出循环部分以及终止临界点,但考虑起来仍然是非常费脑子的,而且稍一出错就会陷入死循环(无限递归)中。
使用递归的几点建议:
要保证递归能终止
设置安全计数器防止无限递归
把递归调用限制在一个子程序里
要注意堆栈 递归在内存中的活动是一系列的入栈出栈,所以要确保堆栈空间够用
不要用递归去计算阶乘 可菲波那契(fibounacci)数
貌似大学课程中讲解递归的例子都是使用阶乘和菲波那契数。 天下文章一大抄真的是如此都抄到大学教程中了。
文中的例子我改写了一下:
public int Factorial(int Number)
{
int IntermediateResult = 1;
int Factor = 1;
for (Factor = 2; Factor <= Number; Factor++)
{
IntermediateResult = IntermediateResult * Factor;
}
return IntermediateResult;
}
这个语句一直都是饱受争议的,但整体看来还是反对的人占大多数。记得专门有一本书来写goto的坏处。我本人也不太喜欢这条语句,会破坏程序的结构性,并且使用多了跳来跳去毫无顺序可言。但是至今仍有很多语言还是支持goto的,证明它的存在还是有一定价值的。
return语句
这个语句可以从一个子程序中退出,可以使子程序从正常的出口退出到调用它的程序中去。文章中粗体说明“减少每个程序中return语句”,但不是说不要使用return。刚学javascript的时候,好像是每个方法都要有一个return语句,既然什么都不返回,也要写上这个语句,表明程序正确的执行完毕并且回到了被调程序。
递归语句
递归语句很好用,可以用很小的几句语句解决很大的问题,但用好递归语句可不是一件容易的事情。本人常常为递归而苦恼,虽然我已经很了解递归,并且能够分析出循环部分以及终止临界点,但考虑起来仍然是非常费脑子的,而且稍一出错就会陷入死循环(无限递归)中。
使用递归的几点建议:
要保证递归能终止
设置安全计数器防止无限递归
把递归调用限制在一个子程序里
要注意堆栈 递归在内存中的活动是一系列的入栈出栈,所以要确保堆栈空间够用
不要用递归去计算阶乘 可菲波那契(fibounacci)数
貌似大学课程中讲解递归的例子都是使用阶乘和菲波那契数。 天下文章一大抄真的是如此都抄到大学教程中了。
文中的例子我改写了一下:
public int Factorial(int Number)
{
int IntermediateResult = 1;
int Factor = 1;
for (Factor = 2; Factor <= Number; Factor++)
{
IntermediateResult = IntermediateResult * Factor;
}
return IntermediateResult;
}
相关文章推荐
- 2009-02-18读书记录:《代码大全》(第一版)第十七章——常见的控制结构
- 2009-02-17读书记录:《代码大全》(第一版)第十四章——条件语句
- 2009-02-12读书记录——《代码大全》(第一版)第七章——高级结构设计
- 2009-02-17读书记录:《代码大全》(第一版)第十五章——循环语句
- 2009-02-05读书记录——《代码大全》(第一版)第三章——软件创建的先决条件
- 2009-02-09读书记录——《代码大全》(第一版)第六章——模块化设计
- 2009-02-15读书记录:《代码大全》(第一版)第十一章——基本数据类型
- 2009-02-16读书记录:《代码大全》(第一版)第十二章——复杂数据类型*
- 2009-02-20读书记录:《代码大全》(第一版)第十九章——文档
- 2009-02-22读书记录:《代码大全》(第一版)第二十二章——创建管理
- 2009-02-23读书记录:《代码大全》(第一版)第二十五章——单元测试
- 2009-02-21读书记录:《代码大全》(第一版)第二十章——编程工具
- 2009-02-23读书记录:《代码大全》(第一版)第二十四章——评审
- 2009-02-24读书记录:《代码大全》(第一版)第二十六章——调试
- 2009-03-03读书记录:《代码大全》(第一版)第三十一章——个人性格
- 2009-03-05读书记录:《代码大全》(第一版)第三十一章、三十二章、总结
- 2009-03-01读书记录:《代码大全》(第一版)第二十七章——系统集成
- 2009-02-06读书记录——《代码大全》(第一版)第四章——建立子程序的步骤
- 2009-02-13读书记录:《代码大全》(第一版)第九章——数据名称
- 2009-02-19读书记录:《代码大全》(第一版)第十八章——布局和风格