老师,while循环和do-while循环判断的条件都一样,唯一的区别是do-while是先运行后判断,则会出现多一的现象,对吗

老师,while循环和do-while循环判断的条件都一样,唯一的区别是do-while是先运行后判断,则会出现多一的现象,对吗

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>while语句算法</title>

</head>

<body>

    <script>

        var a = 1000;

        var year = 0;

        while(a <= 2000) {

            a = a + a * 0.05;

            year ++;

        }

        document.write(year);


        var b = 1000;

        var c = 0;

        do {

            a = a + a * 0.05;

            year ++;

        } while(a <= 2000);

        document.write(year - 1);

    </script>

</body>

</html>


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

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

1回答
好帮手慕久久 2022-03-31 17:26:50

同学你好,解答如下:

1、“while循环和do-while循环判断的条件都一样,唯一的区别是do-while是先运行后判断”这句理解是对的。

2、是否多一,不是固定的,要具体问题具体分析。要根据代码的写法,进一步分析。

比如:小明初始有0元,妈妈每天给他1块钱,他从来不花,问几天后,他的钱数会超过3块钱。通过口算得知,第4天就超过3块了(第3天有3块,不是超过3块)。此时如下两种写法,结果是一样的,不用减掉1:

var money1 = 0;
        var day1 = 0;
        while(money1 <= 3) {
            money1 = money1 + 1;
            day1 ++;
        }
        console.log(day1);

        var money2 = 0;
        var day2 = 0;
        do {
            money2 = money2 + 1;
            day2 ++;
        } while(money2 <=3);
        console.log(day2);

同样的初始条件,问“哪天小明的钱数是小于0的(可能例子不太合理)”,那么如下写法结果就是不一样的,相差了1:

  var money1 = 0;
        var day1 = 0;
        while(money1 <0) {
            money1 = money1 + 1;
            day1 ++;
        }
        console.log(day1);

        var money2 = 0;
        var day2 = 0;
        do {
            money2 = money2 + 1;
            day2 ++;
        } while(money2 <0);
        console.log(day2);

所以记住二者的区别就行,然后具体问题具体分析。

2-25这个习题,同学的do循环不用-1。

祝学习愉快!

  • 提问者 dy12369 #1

    老师,那这个习题while循环的结果是15,而do-while循环的结果是16

    2022-03-31 20:53:10
  • 好帮手慕久久 回复 提问者 dy12369 #2

    测试代码的时候,要把可能影响结果的代码注释掉。同学两种方案,都使用同一个变量a、同一个变量year,会干扰。建议如下这样测试:

    第一种方式:

    https://img1.sycdn.imooc.com//climg/62465afd099d4df907350469.jpg

    https://img1.sycdn.imooc.com//climg/62465b05090de7c903190108.jpg

    第二种方式:

    https://img1.sycdn.imooc.com//climg/62465b22093b680906550428.jpg

    https://img1.sycdn.imooc.com//climg/62465b5d091985f002880125.jpg

    2022-04-01 09:54:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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