1 函数的使用
1.1 三要素
返回值:返回什么数据
函数名:函数的名称
参数表:需要传递什么数据给函数
public static void main(String args[]){
//返回值 函数名 参数表
}
void: 没有返回值类型
1.2 函数的定义和调用
位置:类的里面,其他函数的外面
TestMethord.java
package com.mlj.coreJava.day4;
import java.util.Scanner;
public class TestMethord {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int m = scanner.nextInt();
System.out.println("请输入另一个整数:");
int n = scanner.nextInt();
System.out.println(m + "+" + n + "=" + add(m, n));
}
public static int add(int a, int b) {
return a + b;
}
}
运行截图:
1.3 return
如果一个函数指定了返回值类型,则必须要有返回值,且返回值类型要与函数指定的返回值类型一致。
参考上一段代码:返回值类型为int,则return的必须是int类型
public static int add(int a, int b) {
return a + b;
}
2 实参与形参
TestMethord中add()方法的形参是int a, int b
main方法调用add()方法传入的参数m,n是实参
另外,形参与实参的类型必须一致,形参可以有多个用逗号隔开,亦可以没有参数
3 函数的嵌套调用
package com.mlj.coreJava.day4;
public class TestQianTao {
public static void main(String args[]){
System.out.println("main1");
printA();
System.out.println("main2");
}
public static void printA(){
System.out.println("printA1");
printB();
System.out.println("printA2");
}
public static void printB(){
System.out.println("printB1");
System.out.println("printB2");
}
}
观察运行顺序:
4 函数的递归调用
求阶乘
package com.mlj.coreJava.day4;
import java.util.Scanner;
public class TestDiGui {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
int result = jieCheng(num);
System.out.println(result);
}
public static int jieCheng(int n) {
if (n == 1) return 1;
return jieCheng(n - 1) * n;
}
}