递归:是一种编程手法,函数自身直接或间接调用了自身
public class FileRecursion { public static void main(String[] args) { } public static void show(){ //show();//直接调用自身 Method(); } public static void Method() { show();//间接调用自身 } }
注意:
1.递归一定要明确条件,否则容易栈溢出(StackOverflowError),只进不出
2.递归的次数
什么时候用递归:一个功能在被重复只用,并每次使用时,参与运算的结果和上一次调用有关,这时可以用递归来解决问题
public class FileRecursion { public static void main(String[] args) { toBin(6); } public static void toBin(int num){ if(num>0){ System.out.println(num%2);//将该句放到toBin方法下面结果的顺序会翻过来,因为栈中最上层的先出栈,所以结果会反过来变成110 toBin(num/2); } } }
public class FileRecursion { public static void main(String[] args) { System.out.println(getSum(5)); } public static int getSum(int num){ int x = 9; if(num==1) return 1; return num+getSum(num-1); } }