package demo;
import java.io.*;
import java.util.*;
import java.lang.*;public class Recall {
static void hi(int n){
if(n<=0)
return;
hi(n-1);
System.out.println("Hello"+ n);
//hi(n-1);
}
public static void main(String[] args){
Recall.hi(5);
}
}结果为
Hello1
Hello2
Hello3
Hello4
Hello5
我以为是Hello5
Hello4
Hello3
Hello2
Hello1
import java.io.*;
import java.util.*;
import java.lang.*;public class Recall {
static void hi(int n){
if(n<=0)
return;
hi(n-1);
System.out.println("Hello"+ n);
//hi(n-1);
}
public static void main(String[] args){
Recall.hi(5);
}
}结果为
Hello1
Hello2
Hello3
Hello4
Hello5
我以为是Hello5
Hello4
Hello3
Hello2
Hello1
会出现截然相反的结果?
会出现截然相反的结果?
h(5)->h(4)->h(3)->h(2)->h(1)->
->System.out.println("Hello"+ 1)
->System.out.println("Hello"+ 2)
->System.out.println("Hello"+ 3)
->System.out.println("Hello"+ 4)
->System.out.println("Hello"+ 5)
按照hudingchen(辰辰)的解释程序改成这样package demo;
import java.io.*;
import java.util.*;
import java.lang.*;public class Recall {
static void hi(int n){
if(n<=0)
return;
//hi(n-1);
System.out.println("Hello"+ n);
hi(n-1);
}
public static void main(String[] args){
Recall.hi(5);
}
}
结果应该为:
Hello5
Hello4
Hello3
Hello2
Hello1
Hello1
Hello2
Hello3
Hello4
Hello5不知道理解有没有错误
但结果为
Hello5
Hello4
Hello3
Hello2
Hello1
Hello5
Hello4
Hello3
Hello2
Hello1
自己设个断点看看