代码如下,有些不明白,如果输入50,为什么会输出两个呢?

代码如下,有些不明白,如果输入50,为什么会输出两个呢?

正在回答

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

3回答

同学你好,问题解答如下:

1.代码要顺序执行,弹窗写在循环里面,所以要先进入了循环,才能输入退出,并把它加入到数组。当第二次循环执行完毕跳出本次循环,执行第三次循环的时候,才会判断input不符合条件,此时不会进入循环了,循环终止。

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

2. 第二次输出的50,是第一次循环时添加的。第一次循环时,添加了一个50,并输出50。那么第二次又添加了一个退出,数组中自然保存了两个元素,即50和退出,所以第二次输出50和退出。

祝学习愉快~

好帮手慕夭夭 2020-10-14 16:47:15

同学你好,这是因为document.write输出写在了循环里面,具体参考如下理解:

进入第一次while循环,先弹出一个弹窗并输入50。然后50添加到数组new_arr中,此时数组中有一个元素50。最后输出数组new_arr,这是第一次输出50。

进入第二次循环,先弹出一个弹窗输入退出。然后退出添加到数组new_arr中,此时数组中有两个元素,即50和退出,最后输出数组new_arr,输出的内容为5和退出,这是第二次输出50。

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

这里想要正确输出,把document.write放在循环外部。另外,最后输出的退出也是不需要显示的,要删掉。如下调整:

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

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 怒焰狂暴 #1
    第二次循环我没明白,第二次我输入退出了,while里的条件是input!=“退出”,那么应该是自动跳出了,怎么还会执行下面的语句呢,而且第二次我也没输入50呀?
    2020-10-14 16:55:01
怒焰狂暴 提问者 2020-10-14 16:20:24
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      var input;
      var new_arr = [];
      while (input != "退出") {
        input = prompt("输入一个数字");
        new_arr[new_arr.length] = input;
        document.write(new_arr);
      }
    </script>
  </body>
</html>


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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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