h5循环结构(四)

本文详细介绍了JavaScript中的循环结构,包括while、do-while和for循环,并通过实例展示了如何使用这些循环来解决问题,如计算水仙花数、预测GDP超越时间及估算圆周率。此外,还强调了在面对循环问题时应思考的四个关键点:初始状态、重复条件、循环内容和过渡到下一次循环的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3 循环结构

While(满足条件){

      当满足条件时执行的内容

}

循环的特点:

有条件的重复执行一件事,每次做的事情不同,但类似。

var num=100;
while(num<1000){
    var a=num%10;
    var b=Math.floor(num/10)%10;
    var c=Math.floor(num/100);
    var res="";
    if(num==a*a*a+b*b*b+c*c*c){
        res=num+"这个数是水仙花数";
        alert(res);
    }
    num++;
}

 

循环结构最好用流程图表示


判断GDP 总值

2000年时 chn  4089.82

          Usa 142562.75

中国的增长率是0.08

美国的增长率是0.02

假设增长率不变,什么时候中国超越美国

var year=2009;
var c1=49089.82;
var u1=142562.75;
while(c1<u1){
    var c1=c1*1.08;
    var u1=u1*1.02;
    year++;
} alert(year+"中国超越美国");

 

 

  套路:

确定初始状态

循环条件

循环体

为下次循环做准备

 

水仙花数

GDP总值

确定初始状态

Num=100

Year=2009

Usa=142562.75

Chn=490889.82

循环条件

 

判断num 是不是水仙花数

Usa *=1.02

Chn*+1.08

为下次循环做准备

Num++

Year++

当我们拿到一个循环的问题的时候应该怎么办:

问自己4个问题:

1.     初始状态是什么

2.     重复的条件是什么

3.     要重复做什么

4.     如何过渡到下一次

 

计算圆周率()

Pi=(1-1/3+1/5-1/7+1/9……..)*4    精确度最后一项的绝对值小于10^-6

初始状态:

Pi=0;

fenzi=1;

fenmu=1;

重复的条件

将这个分数加到pi里面,

如何过渡到下次循环

分子=分子*-1;

分母=分母+2

结束循环之后,圆周率=pi*4

var pi=0;
var fenzi=1;
var fenmu=1;
while(Math.abs(fenzi/fenmu)>0.000001){
    pi+=4*(fenzi/fenmu);
    fenzi=fenzi*(-1);
    fenmu+=2;
} alert(pi);

 

do-while

do{重复做的事情

} while()

var s=0;
var num=1;
do{
    s+=num;
    num++;
}while(num<=100);
 alert(s+""+num);
var s1=0;
var num1=1;
while(num1<=100){
    s1+=num1;
    num1++;
} alert(s1+" "+num1);

 

do-while 与while本质上没有区别,就是做循环的事情,唯一的区别就是:

do-while 先做一次循环体的内容然后去做判断条件

while 是先去判断条件再来做循环体里面的内容

For 循环  for(初始条件

    for(varnum=100;num<1000;num++){
        var a=num%10;
        var b=Math.floor(num/10)%10;
        var c=Math.floor(num/100);
        var res="";
        if(num==a*a*a+b*b*b+c*c*c) {
            res=num+"这个数是水仙花数";
            alert(res);}
    }

 

求圆周率,(随机数法)面积为1的正方形中随机扔一豆子

 

获0-1的随机数,Math.random()

1.     初始状态

Sum=0

Num=0

2.     重复的条件

Num<10000

3.     重复做的事情

随机产生的两个数,判断这两个点是否在圆内,在sum++

4.     为循环做准备

Num++

在圆内的豆子数/总的豆子数

var sum=0;
 for(varnum=0;num<10000;num++){
     var x=Math.random();//[0,1)
    
var y=Math.random();
     if(Math.sqrt(x*x+y*y)<=1){
         sum++;
     }
 } var pi=4*(sum/num);
 alert(pi);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值