请老师解答
来源: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);输出的就是循环结束最终的结果哦。
祝学习愉快 ,望采纳。
好帮手慕夭夭
2019-05-25
你好同学,while循环里面的代码每一次循环都会执行的。把i的声明放在循环里面,当第一次循环结束i等于1之后,进入下一次循环又会执行i=0 。那么arr[i] = input;永远都是在数组第一个位置添加元素,数组第一个元素如果有了值就会进行覆盖。即当最后输入-1的时候,数组第一个位置的元素会变成-1,如果不使用arr.pop()删掉,就会显示-1.
同学按照现在的思路去实现就可以哦,祝学习愉快 ,望采纳。
相似问题