首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

跪求大神,小弟问一个关于递归的有关问题

2014-01-01 
跪求大神,小弟问一个关于递归的问题public class Tobinary{public static void main(String[] args){chang

跪求大神,小弟问一个关于递归的问题
public class Tobinary
{
public static void main(String[] args)
{
change(18) ;
}
public static void change(int num)
{

if (num == 0)
{
return ;
}
change(num / 2) ;
System.out.print(num % 2) ;
}



这是一个用递归写的把十进制转换成二进制的程序。
但是小弟不明白的是,当程序执行到num = 0 的时候,那么这整个调用的函数就随return 结束了,然后控制权就回到num = 1 的被调用函数中,但是为什么是change(num / 2)之后不是继续再调用这个函数本身,然后就执行 if语句,而是接下来就执行输出语句。求大神指导,先谢谢啦。
[解决办法]
函数进栈的顺序change(18) ->change(9)->change(4)->change(2)->change(1)->change(0)当num==0,return change(0)出栈,接着change(1)执行完默认return,一次类推

热点排行