您的位置:首页 > 编程语言

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐