如果您使用的是IDE,则可以使用调试器,亲眼看看发生了什么。
无论如何,让我们尝试一下,当调用递归方法时会发生什么:您使用8(
printit(8);)调用该方法:
System.out.println(8);
-> 8printit(8 /2 );
->以8/2 = 4再次调用方法System.out.println(4);
-> 4printit(4 /2 );
>以4/2 = 2再次调用方法System.out.println(2);
-> 2printit(2 /2 );
>用2/2 = 1再次调用方法return;
->继续上一个通话,(printit(4 /2);
)printit(2 /2 );
>用2/2 = 1再次调用方法return;
->继续上一个通话,(printit(4 /2);
)- 方法完成,继续上一个调用(
printit(8 /2);
) printit(4 /2 );
>以4/2 = 2再次调用方法System.out.println(2);
-> 2printit(2/2);
我们已经知道的呼叫不会产生任何结果。- 现在我们在第一次调用一遍,
printit(8);
,呼吁printit(8/2);
System.out.println(4);
-> 4- 16等…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)