有么有大牛 表达能力强的给我讲下递归啊 是在看不懂他怎么执行的?跳来跳去static string Test(int i){if (i == 10){return i.ToString();//①}else{Test(++i);return i.ToString();//②}}Console.WriteLine(Test(1)); 结果居然是2,1.为什么第①出 return不跳出?2.当满足条件后执行else的 ② 为什么他也不出去,++居然成了--了 ,还有他为什么减到2才执行完?条件在哪里不单单是这个例子 就大牛们帮忙解释下关于递归或许更麻烦的例子
3 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
递归算法解决问题的特点:
(1) 递归就是在过程或函数里调用自身。
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。
(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。
大话西游666
TA贡献1817条经验 获得超14个赞
1、不是最外层当然不会跳出
2、跟上面原因一样,不是最外层就不会跳出,所以i先加到10后一层层的返回,直到最外层,最外层的i只执行了一次++,所以最后是2
- 3 回答
- 0 关注
- 633 浏览
添加回答
举报
0/150
提交
取消