递归机制
先用一个简单的案例进行测试
简单分析其为什么输出是2、3、4。
首先,先在栈中执行main,然后执行test(4),zai test(4)中执行了一个方法test(3),故test(4)未执行完毕,先去执行test(3)。由此可得,执行到test(2),此时,test(2)无需执行if语句内容,故执行输出语句System.out.println输出他的a值 a=2,此时,test(2)执行完毕,返回执行test(3),在该区域,他的a值为3,故输出为a = 3. test(3)执行完毕,执行test(4)未执行部分,输出a= 4.
最终执行main(),程序执行完毕。
递归注意两点
1.每执行一个新的方法,系统会为其创建一块新的空间(栈)。
2.在每个新的空间上(方法上)其数据(局部变量)是独立的。