老师,为什么 弹出输入的数字小了,接着弹出 恭喜你猜对了。代码有什么问题嘛?
<!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 星