Java 函数与递归

Java 函数与递归笔记
 
一、函数(方法)基础
 
(一)概念
 
执行特定功能的代码段,可通过名称反复调用,实现代码复用,提升可读性与维护性。
 
(二)使用流程
 
1. 定义:确定功能与名称,包含声明(确定函数名、返回值、参数 )和实现(函数体代码 )。
- 语法(无返回值示例 ):
public static void 函数名(参数列表) {
    // 函数体:实现功能的代码
}
 
- 命名规则:驼峰命名法(首单词首字母小写,后续单词首字母大写,如  printInfo  )。
2. 调用:通过  函数名(参数)  执行函数功能,可在代码中多次调用。
 
(三)定义位置
 
在类内部、其他函数外部定义,属于类的成员(静态函数用  static  修饰 )。
 
(四)好处
 
- 减少重复代码,提升可读性(逻辑封装成函数,直接通过名称理解功能 )。
- 便于维护(修改函数内部逻辑,不影响调用处 )。
 
二、函数的参数
 
(一)形式参数(形参 )
 
- 定义:函数声明时,约定调用者需传递的数据类型和参数名,相当于函数内的局部变量。
- 语法:
public static void 函数名(数据类型 形参名1, 数据类型 形参名2) {
    // 函数体中通过形参名使用数据
}
 
 
(二)实际参数(实参 )
 
- 定义:调用函数时,传给形参的具体数据,需与形参的类型、个数、顺序一致。
- 调用语法:
函数名(实参1, 实参2);
 
 
三、函数的返回值
 
(一)概念
 
函数与调用者的数据交互,函数执行后返回给调用者的结果。
 
(二)语法
 
public static 返回值类型 函数名(参数列表) {
    // 函数体
    return 结果; // 返回值类型需与声明一致(void 类型无 return 语句或仅用 return 结束函数 )
}
 
 
(三)返回值类型
 
1.  void  类型:函数无需返回数据,调用者不接收结果,如  public static void printHello() { ... }  。
2. 基本/引用类型:函数需返回结果(如  int 、 String  等 ),必须用  return 结果;  返回对应类型数据,调用者可接收处理。
 
(四)返回值处理
 
1. 不处理:直接调用函数,忽略返回值(如工具类打印函数 )。
2. 接收存储:用同类型变量接收,如  int result = add(3, 5);  ( add  函数返回  int  类型 )。
 
(五) return  的作用
 
- 返回结果给调用者;
- 立即结束当前函数执行(即使后面有代码,也不再执行 )。
 
四、函数的执行机制
 
(一)程序入口
 
以  main  函数为入口,从上到下执行代码;遇到函数调用时,优先执行被调函数内部代码,执行完毕带着返回值回到调用处,继续执行  main  后续逻辑。
 
(二)嵌套调用
 
被调用的函数内部,可再调用其他函数,形成嵌套(需注意调用顺序和栈内存使用 )。
 
五、递归调用(了解 )
 
(一)概念
 
函数内部调用自身,通过“递进 + 回归”解决问题。
 
(二)关键注意事项
 
必须设置递归出口(条件判断,使递归终止 ),否则会因无限递归导致  java.lang.StackOverflowError (栈溢出 )。
 
(三)递归思想
 
1. 递进:每次递归调用,问题规模简化(如计算  n!  时, n! = n * (n-1)!  ),直到触发出口条件。
2. 回归:从出口结果开始,逐层向上返回计算,最终得到最顶层结果。
 
(四)案例:递归实现阶乘
 
public class Test7 {
    public static void main(String[] args) {
        int r = jieCheng(5); // 计算 5 的阶乘
        System.out.println(r); // 输出 120
    }

    // 递归函数:计算 n 的阶乘
    public static int jieCheng(int n) {
        if (n == 1 || n == 0) {
            return 1; // 递归出口:n=1 或 0 时,阶乘为 1
        }
        return n * jieCheng(n - 1); // 递进:n! = n * (n-1)!
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值