递归这个东西绕了我好几次,真的是无语了,本来就是个小东西,但是容易忘记,索性记下来:
/** * 递归:当前方法 内调用自己的现象 */ /* * @Test public void digui() { System.out.println("递归演示"); digui(); } */ public static void main(String[] args) { // 计算1~num的和,使用递归完成 int n = 5; int sum = getSum(n); System.out.println(sum); File dir0 = new File("g://files"); getAllFiles(dir0); } // 示例1:输入一个数,求1-改数的所以整数的和 public static int getSum(int n) { if (n == 1) { return 1; } return n + getSum(n - 1); } // 示例2:找出某个文件夹下面所有的文件并打印出其路径名称 public static void getAllFiles(File file) { File f[] = file.listFiles(); for (File fn : f) { if (fn.isDirectory()) { getAllFiles(fn); } else { System.out.println(fn); } } } /** * 总结:注意:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。 在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。 * 构造方法禁止递归 */