老师这么写对吗

老师这么写对吗

var  input = Number(prompt('请输入您猜的数字'));

        while (input != 5) {

            if (input > 5) {

                alert('您猜的数字大了');

            } else if (input < 5) {

                alert('您猜的数字小了');

            }

        }

        alert('您猜对了!') 


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

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

1回答
好帮手慕张 2021-01-05 11:16:41

同学你好,代码错误,效果如下:

页面打开后,输入小于5的数字或者大于5的数字时,会一直弹出“您猜的数字小了”或“您猜大了,程序进入死循环,无法跳出:

http://img1.sycdn.imooc.com//climg/5ff3d9e0091c512d05010099.jpg

原因是:代码中把弹框放在了循环的外面,因此弹框只执行一次。当输入不是5时,会进入while循环,由于while循环内没有再次弹框的代码,因此input的值无法改变,导致无法跳出循环,所以会一直弹框弹出,“您猜的数字小了”或“您猜的数字大了”。

建议:将弹框放在循环的里面,当条件不满足的时候就会继续弹出弹框,修改如下:

http://img1.sycdn.imooc.com//climg/5ff3da0c098f5ec805830537.jpg

祝学习愉快!


  • 提问者 siegelions #1

    弹窗放在while循环里面,var input 只是创建了变量input并没有赋值怎么判断while(input!=5) input是否不等5

    2021-01-05 12:15:52
  • 好帮手慕张 回复 提问者 siegelions #2

    同学你好,pwd声明了,没有赋值,所以它的值默认是undefined。undefined满足while循环语句的判断条件,然后就会进入while循环,继续弹框判断。

    祝学习愉快!


    2021-01-05 15:48:13
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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