【第6周01流程控制语句 3-25 1000元变2000元】麻烦老师看下while,do-while,for的写法对吗?

【第6周01流程控制语句 3-25 1000元变2000元】麻烦老师看下while,do-while,for的写法对吗?


问题描述:

Q1: 麻烦老师看下while,do-while,for的写法对吗?

Q2:for那里的年份是要从1开始吗?

相关截图:

https://img1.sycdn.imooc.com//climg/61a489f7094542d507900484.jpg

https://img1.sycdn.imooc.com//climg/61a48a000971103408700372.jpg

https://img1.sycdn.imooc.com//climg/61a48a080967722c07840326.jpg

相关代码:while

 //================ while =================
    
    var p=1000, y=0;
    while(p<2000){
        p*=1.05;
        y++;
    }
    while(p>=2000){
        document.write(y);
        break;
    }

相关代码:do-while

//   ================= do-while ==============
    var p=1000, y=0;
    do{
        p*=1.05;
        y++
        
    }while(p<2000);
    document.write(y);

相关代码:for

// ================= for =================
    
    var p=1000, y=1;
    for(var y=1,p=1000;p<2000;y++){
        p*=1.05;
        document.write(y);
    }


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕然然 2021-11-29 16:41:45

同学你好,解答如下:

1、while循环的写法可以优化一下:第二个while循环其实不需要写,第一个while循环就能够实现效果,即当p < 2000不成立的时候,while循环会自动结束,此时就能得到年份,如图

https://img1.sycdn.imooc.com//climg/61a48ede097017ae06100424.jpg

如果想使用break的话,同学可以参考如下代码:

https://img1.sycdn.imooc.com//climg/61a4919109c3a91506150547.jpg

2、do-while的写法是没问题的,不需要优化

3、for循环的写法建议优化如下:

首先,年份可以从1开始,最后一次for循环时,是在y+1之后才进行的条件判断,此时y多加了1,所以需要减去1进行修正,或者也可以让年份从0开始进行修正。

其次,建议将输出语句放到for循环外执行,可以更清晰地查看输出结果,如图

https://img1.sycdn.imooc.com//climg/61a490ff09f0c3d806420431.jpg

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师