老师,为什么 弹出输入的数字小了,接着弹出 恭喜你猜对了。代码有什么问题嘛?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Math.random()</title> </head> <body> <script> //补充代码 var arr=Math.floor(Math.random()*9+1); while (input!=arr) { var input=prompt("请输入你猜的数字"); if (input>arr) { alert("输入的数字大了"); } else { alert("输入的数字小了"); } } alert("恭喜你猜对了"); </script> </body> </html>
1
收起
正在回答
2回答
同学你好,可以梳理一下执行过程,同学就明白了,如下
1、循环的条件是input != arr,在这个判断条件之前,input并没有定义,input是在循环体内定义的,因为预解析,变量提升,所以在循环开始之前,相当于var input=undefined。
如果这块内容不理解的话,没有关系,在后面的课程中会有讲解的,现阶段作为了解就可以了
2、接下来,我们来模拟一下执行过程,比如,随机数是2,可参考如下:
3、执行完上面的代码,input为1,
所以出现了同学提到的,先弹出输入的数字小了,接着弹出 恭喜你猜对了
4、如果要实现本次练习的要求,可以参考第一次老师回答的建议,在循环体外声明input,因为是在循环外定义的,弹出框只会出现一次,所以在循环体内的最后再弹窗。
同学可以自己再理一下思路。
如果还有其他疑问,建议在问答区重新提问,便于后期查找总结
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星