递归
在方法中调用方法本身
递归的分类
直接递归:在方法中调用方法本身,A-->A
public class MethodDemo04 {
//定义一个变量,表示总和
static int sum = 0;
//定义一个变量,表示从1不断变化到100的变量
static int variable = 1;
public static void sum(){
//和加上这个变量
sum+=variable;
//让变量自增
variable++;
//在varibale小于等于100时重现调用sum方法
if(variable<=100){
sum();
}else{
System.out.println(sum);
}
}
public static void main(String[] args) {
// sum(1);
// sum(2);
// sum(3);
// sum(4);
// for(int i = 1;i<=100;i++){
// sum(i);
// }
sum();
}
}
间接递归:通过其他方法调用自己,A-->B-->C-->A
注意:写递归一定要定义结束条件
防止栈溢出(StackOverflowError),方法在栈中 不断调用方法会栈溢出