一. 函数的定义
概念:实现特定功能的一段代码,可反复使用。定义语法:
Public static void 函数名称(){
//函数主体
}
(注:函数名称-标识符的命名规范:由数字、字母、$、“_”组成,且不能由数字开头,首个单词的首字母小写,其余单词首字母大写,没有长度限制)
定义的位置:函数定义在类的内部,与main函数并列
函数的调用:在需要执行函数代码的位置,通过函数名称进行调用
格式:函数名称()
(注:调用函数是,会优先执行函数内部代码,结束后,返回到函数调用处,继续向下执行)
二. 函数的参数
概念:多数情况下,函数与调用者之间需要数据的交互;调用者必须提供必要的数据,才能使函数完成相应的功能
形参和实参:
定义语法:
public static void 函数名称(形式参数){
//函数主体
}
调用语法:
函数名称(实际参数);
public static void println(int len,char echo){
for(int i = ;i<=count;i++){
System.out.print(sign);
}
}
三. 函数的返回值
概念:函数调用时,一些情况无需返回结果,另一些情况下则必须返回结果
定义语法:
public static 返回值类型 函数名称(形式参数列表){
//函数主体
return value;//返回值
}
调用语法:
变量 = 函数名称();//变量类型与返回值一致
注:void表示无返回值
有返回值类型的函数中:return表示结束当前函数,并伴有返回值,返回到函数调用处
没有返回值也可以使用:return表示结束当前函数,字节返回导函数调用处
函数只能有一个返回值
函数必须得出一个相应的返回值
注意:一个类中可以定义多个函数,函数之间属于并列关系,不可嵌套
四. 函数的作用
好处:
减少代码冗余
提高复用性
提高可读性
提高客维护性
方便分工合作
例题:
一个三位数的整数abc,满足abc=a!+b!+c!,求这个三位数abc的值
阶层:n!=n*(n-1)(n-2)……*1
解:
package test1;
public class T5{
public static void main(String[] args){
for(int abc = 100;abc<=999;abc++){
int a = abc/100;
int b =abc%100/10;
int c = abc%10;
int result=fact(a)+fact(b)+fact(c);
if(result==abc) System.out.println(abc);
}
}
//计算n阶层
public static int fact(int n){
int result = 1;
for(int i = 1;i<=n;i++){
result*=i;
}
return result;
}
}
五. 函数的递归
函数的嵌套调用
无穷递归:当函数自己调用自己时,如果没有正确的出口条件,则产生无穷递归(输出StackOverflowError)
例题:利用递归计算n的阶层
package test1;
import java.util.Scanner;
public class T5{
public static void main(String[] args){
//获取键盘功能
System.out.println("请输入一个整数");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(fact(n));
}
public static int fact(int n){
if(n==1)return 1;
return fact(n-1)*n;
}
}
本文深入讲解函数的概念,包括定义、参数、返回值及作用,通过实例演示如何使用递归计算阶乘,提升代码复用性和可读性。

被折叠的 条评论
为什么被折叠?



