java 一般函数/方法
方法是将实现一定功能的代码写在一起,可复用。让我们由简入深的看 java 里的方法怎么写吧。
不要返回值,不要参数的一个方法。
public static void method () {
}
其中 public、static 是对方法的使用限定,void 表示不需要返回值。
有返回值,不要参数的一个方法。
public static int method () {
return 10;
}
返回 int 类型,return 返回后跳出方法,return 后面的代码不会执行,同样的 void 方法也可以用return ,return 后面的代码不会执行。
public static void method () {
System.out.println("输出");
return;
System.out.println("不会输出");
}
public static int method () {
System.out.println("输出");
return 10;
System.out.println("不会输出");
}
方法里有逻辑判断的 return 写法。
public static int method () {
int i = 1;
if (i > 10) {
return i;
} else if (i > 1) {
return i;
} else {
return i;
}
}
public static int method2 () {
int i = 1;
int j = 1;
if (i > 10) {
j = 4;
} else if (i > 1) {
j = 5
} else {
j = 6;
}
return j;
}
带入参的方法和用法。
public class Test3 {
public static void main(String[] args) {
int sum1 = add(1, 2);
double sum2 = jian(1, 2);
double sum3 = cheng(1, 2);
double sum4 = chu(1, 2);
System.out.println(sum1);
System.out.println(sum2);
System.out.println(sum3);
System.out.println(sum4);
}
/**
* 加
*/
public static int add(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
/**
* 减
*/
public static double jian(int num1, double num2) {
double sum = num1 - num2;
return sum;
}
/**
* 乘
*/
public static double cheng(double num1, double num2) {
double sum = num1 * num2;
return sum;
}
/**
* 除
*/
public static double chu(double num1, int num2) {
double sum = num1 / num2;
return sum;
}
}
定义方法时的参数叫形参,等价于“局部变量的声明”;使用方法时的参数叫实参,等价于“局部变量的赋值”。
方法内部可以再调用方法,其中调用了自身方法,称为递归。递归用来解决有既定规律的问题,使用时为了避免无穷递归,要设置有效的出口条件。
阶层的递归写法。
public class Test {
public static void main(String[] args) {
double total = method1(5);
System.out.println(total);
}
public static double method1(int num) {
if(num == 1) {
return 1;
} else {
return num * method1(-- num);
// return num * method1(num -1);
// 错误 return method1(-- num) * num
// 错误 return num * method1(num --);
}
}
}
注意 return num * method1(-- num) ,写成 return method1(-- num) * num 或 return num * method1(num–) 都是错误的,-- num,num 的值已经 - 1,再 * num 是改变后的值,num --,先赋值,后-1,也不对。为了保险,这里建议不用递减 – 符号。
下面这张图帮助理解递归
还是很抽象,道理我都懂,然并卵?其实只需要记住规律,套用公式就行了。比如,阶层 n! = n * (n - 1)! ,出口 1! 值 1 位数 1;斐波那契数列 n 的值 = (n - 1) 的值 +( n - 2) 的值, 出口 2 = 1 + 1 ,位数有两个,位数 1 值 1, 位数 2 值 1。
斐波那契数列。
public class Test {
public static void main(String[] args) {
int total = method1(5);
System.out.println(total);
}
public static int method1(int num) {
if(num == 1
|| num == 2) {
return 1;
} else {
return method1(num - 1) + method1(num - 2);
}
}
}
上一篇: Python实现的弹球小游戏示例