为什么输入的第一个数字1不在数组内?

来源:2-30 编程练习

Ron15

2018-01-13 11:59:20

http://img.mukewang.com/climg/5a5983a70001a15a22300898.jpghttp://img.mukewang.com/climg/5a5983f4000182ff05700310.jpg

   var arr=[];

    var input=prompt("请输入任意字符");;

    while(input!=-1){

      input=prompt("请输入任意字符");

      arr.push(input);

    }

      arr.pop();

      arr.splice(0,1,"hello");

      console.log(arr);


写回答

4回答

小于飞飞

2018-01-14

你好,第一个输入的内容没有,理解正确,应为“var input=prompt();这是第一次输入,不在循环内部”。

第二个问题:“input的值都是-1”,因为input是全局变量,所以无论循环内外输入更改的值,都影响input的值,它里面保存最后一次输入的值-1,所以输出结果是-1 。

第三个问题:“一个分号和两个分号”,只是代表该语句结束,不影响input的值。

修改如下:

var input;
    while(input!=-1){
      input=prompt("请输入任意字符");
      arr.push(input);
    }
      arr.pop();
      arr.splice(0,1,"hello");
      console.log(arr);

希望解答你的疑惑,动手实践加油!

0

Ron15

提问者

2018-01-13

还有就是为什么input的值始终是-1??

0

Ron15

提问者

2018-01-13

两个分号好像不会让input失效啊!亲测一个分号两个分号打印出来input的值都是-1!

0

Ron15

提问者

2018-01-13

我明白了!我在外部设置了var input=prompt();这是第一次输入,不在循环内部,所以没有push到arr里面,那第一次输入的1就没有push到arr里面!!但是!!!!!求解!!为什么我明明input=prompt();;后面有两个分号,还是生效了?尝试过一个分号和两个分号,都是一样的输出,那又推翻了我的解释?

0

0 学习 · 640 问题

查看课程