中华农历论坛知识讨论区历法知识 → [求助]请教JavaScript高手,这一行代码怎么理解


  共有17937人关注过本帖平板打印

主题:[求助]请教JavaScript高手,这一行代码怎么理解

帅哥哟,离线,有人找我吗?
秦汉昌
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
[求助]请教JavaScript高手,这一行代码怎么理解  发帖心情 Post By:2011/6/10 22:26:00

//最简单PI计算javascript程序,2006.12 许剑伟 莆田十中

function GJ2_pi(){//,本程序所得最后5位可能有错
 var N=GJ2_N.value-0+1, a=new Array(); //N为计算的位数
 var i=Math.round(3.4*N),b=2*i+1, j,f;
 for(j=0;j<N;j++) a[j]=0;    //PI结果数组初始化
 for(;i>0; i--,b-=2,a[0]+=2) //每计算3.4次得到1位十进制精度
  for(j=0,f=0;j<N;j++){      //多精度a与单精度b相除算法(小学除法),分子i,分母2*i+1
    f = a[j]*i+f*10;
    a[j] = Math.floor(f/b);
    f %= b;
  }
 for(i=N-1;i>0;i--) a[i-1] += Math.floor(a[i]/10), a[i] %= 10; //进位处理
 a[0]='<br>'; for(i=1;i<N;i++) {if(i%10==0) a[i]+=' '; if(i%100==0) a[i]+='<br>';} //换行处理
 GJ2_out.innerHTML=
   '本算法为低速算法,计算位数不宜过大,否则计算时间太长。<br>'
  +'以下计算圆周率,计算公式:PI/2=1+1/3+1*2/(1*3*5)+1*2*3/(1*3*5*7)+...<br>'
  +'通过提取公因子得连分式形式:PI=2+1/3(2+2/5(2+3/7(2+...,这样只需迭代计算a=2+a*n/(2n+1),n=N,…3,,2,1即可得到a=PI<br>'
  +'最后5位可能有错:<font color=red>PI=3.' + a.join('') + '</font>';

}

 

 

 

 for(;i>0; i--,b-=2,a[0]+=2) //每计算3.4次得到1位十进制精度

 

像这样的语句,没有循环体,也没有分号与下面的语句分隔,我们应该怎么来理解它所实现的功能呢,这个循环语句与下一个循环语言是不是嵌套 关系 呢?,我用汉语代码改写成嵌套关系,发现不正常。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 19 1 2 下一页

返回版面帖子列表

[求助]请教JavaScript高手,这一行代码怎么理解








签名