函数和递归函数.PDFVIP

  • 24
  • 0
  • 约1.14万字
  • 约 10页
  • 2019-01-26 发布于湖北
  • 举报
第 3 章 函数和递归函数 3.1 编写函数的优点 程序设计语言中的函数的概念与通常的数学概念差别很大,尽管它们也 具有一些相似之处。因此,初看上去可能会令人混淆,以至于不能做出明确 的比较。我们更愿意在 Java 中介绍函数的语法,并且说明它的两个基本的 优点: 函数可以作为用于增强程序模块性(modularity )和代码可重用性 的子例程(subroutine )。 函数可以通过它们自身递归地定义,这是一种新颖的计算范型。 最后但不是最不重要的是,通过介绍函数,我们将解释局部变量(比如 通常的块变量)和全局内存变量(比如静态类变量)之间的区别。Java 在函 数中只按值传递参数。这是与 C++之间的一个重大的根本区别,C++允许按 值和按引用的变量传递。最后,描述递归可以帮助我们解释 Java 的函数调 用栈(function call stack ),其中局部变量是临时分配的。 3.2 声明和调用函数 3.2.1 原型化函数 函数应该总是在类(目前是程序类)体内声明:比如要声明一个函数 (function )F ,它接受 N 个类型分别为 Type1, …,TypeN 的参数arg1, …, argN, 并且返回 TypeR 类型的结果,则一般语法如下: ·56 · 程序设计与算法(Java 语言版) static TypeR F(Type1 arg1, Type2 arg2, …, TypeN argN) { TypeR result; block_of_instructions; return result; } 过程是不返回任何结果的特殊函数。在 Java 中,这是通过为函数返回类型使用 void 关键字指定的。因此,过程的声明方式如下: static void Proc(Type1 arg1, Type2 arg2, …, TypeM argM) { block_of_instructions; return; } 最后一条指令语句“return; ”可以省略。我们总是在过程/ 函数声明前面放置关键字 static:static void Proc,在第 5 章讨论对象和方法时将解释这为什么是必要的。由于过程 和函数将附加到类体上(即封装到类中),基本上就具有以下程序骨架: 程序 3.1 用于定义静态函数的基本程序骨架 class ProgramSkeleton { static TypeF F(Type1 arg1 ,…, TypeN argN) { TypeF result; // Description Block−of−instructions; return result; } static void Proc (Type1 arg1 , Type2 arg2 ,…, TypeM argM) { block_instructions; return; } public static void main(String[] arguments) {… } } 下面介绍一些具体的示例。 第 3 章 函数和递归函数 ·57 · 3.2.2 基本函数的示例

文档评论(0)

1亿VIP精品文档

相关文档