我正在逐步执行下面的代码,我不明白的部分是“离开”n 值如何变为 2,5 和 10。我理解递归调用的第一部分直到 n==0,然后返回控制移动到 else 部分并打印 (0%2)。程序不应该在那之后停止吗?
void fun2(int n){
System.out.println("Entering"+n);
if(n==0)
return;
else{
fun2(n/2);
System.out.print("Leaving"+n+"---->");
System.out.println(n%2);
}
}
输出 :
Entering5
Entering2
Entering1
Entering0
Leaving1---->1
Leaving2---->0
Leaving5---->1
Leaving10---->0