package ox;
/**
* 使用递归排序打印1-10
* 计算一个数字的阶乘
*/
public class Demo06 {
static int i =0;//定义的全局变量,在这里的作用为方法M()(递归打印1-10)中初始化i的值,静态成员变量在程序运行时只会加载一次
public static void main(String[] args) {
// M(10);//递归打印1-10
int mm = MM(10);//递归阶乘 10 的阶乘
System.out.println(mm);
}
private static int MM(int n) {
//i++;
if (n==1) {
return 1;
}else {
return n*MM(n-1);
}
}
public static void M(int n){
/* 普通的for循环
for (int i = 0; i <= n; i++) {
System.out.println(i);
}*/
//int i=0;
i++;
System.out.print(i+" ");
if (i<n){
M(n);
}
}
}
递归算法,在程序中,递归就是自己调用自己,相比较于寻常的for循环相比,区别在于循环的方式存在本质上的差别:for循环是根据定义的初始值,判断条件,自增来控制,可以想象为只是一个值在动。而递归,虽然也是初始值,自增控制,但是在判断条件的这一环节,是通过调用自己,然后在继续判断,如果条件判断不通过,则继续调用自己,直至判断条件成立,相当于每次的调用自己都同时还背着之前判断未成立的条件跑。