js循环

循环结构的概念

先来看看生活中的场景:

(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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值