请分步说明递归;
public class TestClass { private static void printit(int i) { if (i == 1) { return; } System.out.println(i); printit(i / 2); printit(i / 2); } public static void main(String args[]) { int i = 8; printit(i); } }
如果您使用的是IDE,则可以使用调试器,亲眼看看发生了什么。
无论如何,让我们尝试一下,当调用递归方法时会发生什么:您使用8(printit(8);)调用该方法:
printit(8);
System.out.println(8);
printit(8 /2 );
System.out.println(4);
printit(4 /2 );
System.out.println(2);
printit(2 /2 );
return;
printit(4 /2);
printit(8 /2);
printit(2/2);
printit(8/2);