为了账号安全,请及时绑定邮箱和手机立即绑定

JS的递归函数疑问

JS的递归函数疑问

天窗的蚂蚁 2016-01-22 11:40:22
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title></title>     <script type="text/javascript">          var msg="\n函数的递归调用:\n\n";          //响应按钮的点击事件          function Test()          {              var result;              msg+="调用语句:\n";              msg+="    result=sum(20);\n";              msg+="调用步骤:\n";              result=sum(20);              msg+="计算结果:\n";              msg+="    result="+result+"\n";              alert(msg);          }          //计算当前步骤加和值          function sum(m)          {              if(m==0)              {                  return 0;              }              else              {                  msg+="    result="+m+"+sum("+(m-2)+ ");\n";                  result=m+sum(m-2);              }              return result;          }     </script> </head> <body>     <input type="button" value="测试" onclick="Test()"/> </body> </html>这个递归函数大体的意思我能明白,它在自身中调用。我有一点不明白,这里的"msg+="调用语句:\n"。a+=b不是赋值运算吗?一开始已经定义了"var msg="函数的递归调用:",那么"msg+="调用语句"应该等价于"msg=msg+"调用语句",即"函数的递归调用:调用语句"。但是提交后显示的只是"调用语句"。如图求各位老师解惑。
查看完整描述

1 回答

?
Caballarii

TA贡献1123条经验 获得超629个赞

函数的递归调用:后面有两个\n,相当于换行两次

查看完整回答
反对 回复 2016-01-22
  • 天窗的蚂蚁
    天窗的蚂蚁
    这个我明白。我有疑问的是"msg+="调用语句"不是等价于"msg=msg+"调用语句"吗?那么提交就应该显示为"函数的递归调用:调用语句"啊
  • Caballarii
    Caballarii
    难道实际上不是这样吗。。。你仔细看一下那个弹出框
  • 天窗的蚂蚁
    天窗的蚂蚁
    老师,您能给我解释一下这个例题吗?这个递归函数我有点蒙圈
  • 1 回答
  • 1 关注
  • 1657 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信