方法A 可以调用 方法B
递归:方法A 调用 方法A !自己调用自己
利用递归可以用简单的程序来解决复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来解决,递归策略值需要量的程序就可以描述出解题过程所需要的多次重复计算,大大减少程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
能不用递归就不用递归,递归很容造成栈溢出,内存崩溃。
递归结构包括两个部分:
public class Demo05 { public static void main(String[] args) { System.out.println(f(5)); //调用递归函数f } //阶乘 public static int f(int n) { if (n==1) { return 1; // 递归头 }else { return n*f(n-1); // 递归体 } } }
package com.wanggenji.Scanner; import java.util.Scanner; public class Calculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); for (; ; ) { //if (scanner.nextLine()) switch (scanner.next()) { case "+": System.out.println("请输入需要相加的两个数:"); double data1 = scanner.nextDouble(); double data2 = scanner.nextDouble(); System.out.println(data1+data2); break; case "-": System.out.println("请输入需要相减的两个数:"); double data3 = scanner.nextDouble(); double data4 = scanner.nextDouble(); System.out.println(data3-data4); break; case "*": System.out.println("请输入需要相乘的两个数:"); double data5 = scanner.nextDouble(); double data6 = scanner.nextDouble(); System.out.println(data5*data6); break; case "/": System.out.println("请输入需要相除的两个数:"); double data7 = scanner.nextDouble(); double data8 = scanner.nextDouble(); System.out.println(data7/data8); break; } } } }