递归调用
public static void main(String[] args) {
// System.out.println(sum1(100));
// System.out.println(sum2(100));
// System.out.println(123456);
printIntR1(123456);
}
static void printIntR(int x) {
while (x > 0) {
System.out.print(x % 10);
x /= 10;
}
}
static void printIntR1(int x) {
if (x <= 0) {
return;
}
System.out.println(x % 10);
printIntR1(x / 10);
}
static void func1() {
int a = 0;
int b = 0;
//递归调用 没有出口调用会导致stack overflow
//错误的递归调用设计
func1();
}
static void func2() {
int x = 100;
int y = 200;
}
static int sum1 (int x) {
int s = 0;
while (x > 0) {
s += x--;
}
return s;
}
static int sum2(int x) {
if (x <= 0) {
//递归出口
return 0;
}
int s = 0;
s = x + sum2(x - 1);
return s;
}

浙公网安备 33010602011771号