语句

在使用递归的时候,需要记住以下技巧:

  • 确认递归能够停止
  • 使用安全计数器防止出现无穷递归
  • 把递归限制在一个子程序内
  • 留心栈空间
  • 不要用递归去计算阶乘或者斐波那契数列

在使用表驱动法的时候,必须解决两个问题。首先,你必须要回答怎样从表中查询条目的问题。你可以用一些数据来直接访问表。第二个问题是,你应该在表里面存些什么。有的时候,表查出来的结果是数据。在这种情况下,可以把这些数据存放在表中。在另外一些情况下,表查询出来的结果是动作。在这种情况下,可以保存一个描述该动作的代码,或者可以保存对实现该动作的子程序的引用。

请在布尔表达式的判断里采用true和false来代表真和假。如果你的语言并不直接支持这些写法,那么就用预处理宏或者全局变量来创建它们。把表达式当作布尔表达式,可以写出更清晰的判断语句。

与其写一个庞大的、具有很多项的复杂判断,还不如把中间结果赋给变量,让你可以执行一个更简单的判断。有时候一个很复杂的判断,其中涉及多个变量,这时用一个决策表代替if或者case语句来执行判断可能非常有帮助。

如果你有一个复杂的布尔表达式,那么与其依赖于所用语言的求值顺序,不如用括号更清楚地表达你的意图。括号用起来很方便,而且能够改善可读性。在实践中,把布尔表达式整个括在括号里是一种很好的习惯。

Java中的 & 和 | 逻辑运算符会保证,无论整个表达式的结果能否通过部分项的真假判定而无需完全求值,所有的项都要经过完整的求值。这是与 && 和 || 不同的地方,也就是 & 和 | 不会利用短路求值。

结构化编程的中心论点是,任何一种控制都可以由顺序、选择和迭代这三种结构生成。程序员有时候会倾向于使用那些更方便的语言结构,但是编程这一领域却似乎更多地在对我们能用编程语言做些什么加以限制的过程中取得发展的。

你可能感兴趣的:(语句)