js循环

来源:互联网 发布:linux thrift源码安装 编辑:程序博客网 时间:2024/05/18 03:01

循环结构的概念

先来看看生活中的场景:

(1)      食堂大妈打饭:接过顾客的餐盘→询问菜品→打菜→递回餐盘,重复以上过程,直到所有的顾客都把菜打完。

(2)      快递员去送快递:查看收信地址→赶往目的地→电话告知收件人→收件人签收→交快递,重复以上过程直到所有快递送完。

以上场景都有一个共同点:有条件重复的做一件事情,每次做的不同,但是类似。

程序是为了解决生活中的问题,生活中存在这重复动作,那么程序中也应有相应的描述,这就是循环。

       var num = 1;
var sum = 0;
while(num<=10){
   sum +=num
    num++
}
alert(sum)

上面是从1加到10的代码,简便而清晰,比如加到一万,就把条件给成<=10000

 while循环

while表示:当。。。的时候。。。,也就是当某个条件成立时,则一直重复做。

(流程图)

 

(调试工具查看程序运行轨迹及变量的变化情况)

 

 

 

上方为计算所有的水仙花数的流程图。

var num = 100;
while(num<=999){
var hundreds = Math.pow(Math.floor(num/100),3;
var tens =  Math.pow(Math.floor((num%100)/10),3);
var units =Math.pow(num%10,3);
var sum = units+tens+hundreds;
if(sum==num){
    alert(num+"是水仙花数")
}
    num++;
}
alert("打印完毕,以上全部为水仙花数")

 

 

 

 

下面是计算GDP中国超美国的代码

var china = Number(49089.82);
var USA = Number(142562.75);
var year = Number(2009);
while(USA >= china ){
    china += china * 0.08;
    USA += USA * 0.02;
    year++;
}
alert(year+"年,中国赶超美国GDP")

总结一下循环的套路:

(1)      初始状态

(2)      循环条件

(3)      循环体(要重复做的事情)

(4)      为下次循环做准备。

如何去写循环的程序那?回答四个问题

(1)      初始状态是怎样的

(2)      重复的条件是什么

(3)      重复做什么

(4)      怎么过渡到下一次循环

 

 

水仙花数

GDP预测问题

初始状态

Num=100

Var china=Number(49089.82);

var USA = Number(142562.75);

var year = Number(2009);

循环条件

Num<=999

Usa > china

循环体

var hundreds = Math.pow(Math.floor(num/100),3;
    var tens =  Math.pow(Math.floor((num%100)/10),3);
    var units =Math.pow(num%10,3);
    var sum = units+tens+hundreds;
    if(sum==num){
        alert(num+"是水仙花数")
   
}
    num++;

 

china += china * 0.08;
USA  += USA * 0.02;
year++;

 

为下次循环做准备

Num++

Year++

  案例:计算圆周率,π = (1-1/3+1/5-1/7+。。。)*4   最后一项小于10的负六次方

  分析:将公式稍微变化一下,1-1/3+1/5-1/7变化为(+1/1)+(-1/3)+(+1/5)+(-1/7)那么他和我们之间就和解决之前的1+2+3.。。+10就非常类似了,即都是求累加和的问题,只不过每次加的内容不同而已。

  我们可以将每一项拆分为:

 T=符号*1/分母

(1)      初始状态是怎样的

Sum=0

T=1

Sign=1

Deno=1

(2)      重复的条件是什么

|t|>10-6

(3)      重复做什么

Sum += t

(4)      怎么过渡到下一次循环

      T=sign*1/deno

Sign= -sign

  Deno += 2

原创粉丝点击