欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 一般函数/方法

程序员文章站 2024-03-04 10:55:53
...

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,也不对。为了保险,这里建议不用递减 – 符号。
  下面这张图帮助理解递归
java 一般函数/方法
  还是很抽象,道理我都懂,然并卵?其实只需要记住规律,套用公式就行了。比如,阶层 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);
		}
	}
	
}

相关标签: java 相关 java