Skip to content

函数(Function)

字数
877 字
阅读时间
4 分钟

函数是一段具有特定功能的代码块,可以通过一个名字来调用它执行。

你给它一个命令(传入参数),它帮你完成一项任务(执行逻辑),有时候还会返回结果(返回值)。

函数就是一段可以重复使用的代码,它能接收数据(参数)、处理数据,并可能返回结果(返回值)。它让程序更清晰、更简洁、更容易维护。

函数的基本结构

js
[访问修饰符] [返回类型] [函数名]([参数列表]) {
    // 函数体:你要执行的代码
    return [返回值]; // 如果有返回值的话
}
  • 📌 示例:
js
public int add(int a, int b){
	int sum = a + b;
	return sum;
}

函数的作用和分类

🧩 作用

作用描述
封装逻辑把一段常用代码封装起来,避免重复编写。
提高可读性给函数起个简单易懂的名字,方便记录和看懂
便于维护如果需要修改功能,只需要修改对应的函数内容
模块化开发将大问题拆分成多个小问题,每个问题由一个函数解决

分类(按照返回值)

js
// 1. 无参数、无返回值
public void sayHello() {
    System.out.println("你好!");
}

// 2. 有参数、无返回值
public void printSum(int a, int b) {
    System.out.println("总和是:" + (a + b));
}

// 3. 有参数、有返回值
public int multiply(int a, int b) {
    return a * b;
}

// 4. 无参数、有返回值
public String getGreeting() {
    return "欢迎来到 Java 世界!";
}

💡 小练习

🎯编写一个名为 max 的函数,接收两个整数作为参数,返回较大的那个。
示例代码
js
int result = max (10, 20);
🎯定义一个函数,计算一个整数数组的总和
示例代码
js
int[] numbers = {1, 2, 3, 4, 5};
int total = sumArray(numbers); // 返回 15
🎯定义一个函数,将字符串首字母大写其余小写
示例代码
js
String result = capitalize("hELLo"); // 返回 "Hello"

递归函数

🧠 什么是递归函数?

概念:就是在一个函数的定义或执行过程中,直接或间接地调用自己本身。

要素说明
基本情况递归停止的条件,防止无限递归
递归步骤函数调用自己,并将问题缩小为更简单的子问题

结构

js
public void recursiveFunction() {
    // 终止条件(Base Case)
    if (满足某个条件) {
        return; // 停止递归
    }

    // 业务逻辑(可选)

    // 递归调用(Recursive Call)
    recursiveFunction(); 
}
⚠️ 关键点:

必须有终止条件(Base Case),否则会无限调用导致栈溢出(StackOverflowError)。 每次递归调用都应该使问题规模变小,逐步接近终止条件。

经典案例

计算阶乘(Factorial)

阶乘定义

  • n! = n * (n - 1)!
  • 0! = 1(这就是 Base Case)
js
//递归方法
public int factorial(int n){
	int result = factorial(3)
	//终止条件,防止无线递归
	if (n == 0){
		return 1;
	}
	return n * factorial(n - 1);//调用递归
}

//循环写法
public int factorial(int n) {
    int result = 1;
    for (int i = 1; i <= n; i++) {
        result *= i;
    }
    return result;
}

贡献者

撰写