请老师解答

来源:2-22 编程练习

qq_慕尼黑1376657

2019-05-25 16:35:15

<script>

var input;

var arr = [],i=0;

while (input != "-1") {

input = Number(prompt("请输入您想排序的数字"));

//补充代码

arr[i] = input;

i++;

}

arr.pop();//补充代码

arr.sort(function (a, b) { return b - a }); //补充代码

document.write(arr);

</script>

老师为什么我把i=0这个声明放在while外面呢?我一开始没有写arr.pop();然后把i=0写在了while里面,然后页面就只输出一个-1

写回答

2回答

好帮手慕夭夭

2019-05-27

你好同学,最后一句不对,想要每一次循环的值应该放在循环里面。同学是想要表达拿到所有的值吧,这种情况是放在循环外的,这样当循环结束,执行下面的代码,document.write(arr);输出的就是循环结束最终的结果哦。

祝学习愉快 ,望采纳。

0

好帮手慕夭夭

2019-05-25

你好同学,while循环里面的代码每一次循环都会执行的。把i的声明放在循环里面,当第一次循环结束i等于1之后,进入下一次循环又会执行i=0 。那么arr[i] = input;永远都是在数组第一个位置添加元素,数组第一个元素如果有了值就会进行覆盖。即当最后输入-1的时候,数组第一个位置的元素会变成-1,如果不使用arr.pop()删掉,就会显示-1.

同学按照现在的思路去实现就可以哦,祝学习愉快 ,望采纳。

0
hq_慕尼黑1376657
h 意思就是:如果我要做一个循环,我必须把初始条件放在循环外面,把循环规律(条件)放在循环内;如果我想要每一次循环的值我就要把输出放在循环外,是这样吗?
h019-05-27
共1条回复

0 学习 · 40143 问题

查看课程