递归的感觉就像一层一层把盒子打开,打开到某一层时停止,再反方向一层一层的释放刚才层层打开盒子时保留的东东!
题目:从1累加一直加到100的和是多少?
非递归的循环写法:
递归写法:
var testCase = { sum: 0, run: function(n) { if(n>=100) { return 100; } else { sum = n+ testCase.run(n+1); return sum; } }};console.log(testCase.run(1));
以上只是为了举例方便,实际上递归用于条件不明确而结果的范围明确的情况,循环用于条件明确已受限而结果范围不限的情况。像计算阶乘的情况用循环的优势明显!