qq_菜鸟也是鸟
2016-05-13 12:41
var arr=[80,96,75,50,60,100,92,50,62];
var i=0;
while(i<arr.length)
{
if(arr[i]<70)
{
document.write("成绩不好,不输出。"+"<br>");
continue;
}
document.write("成绩是:"+arr[i]+"<br>");
i=i+1;
}
不知道过了这么长时间你是不是早就弄明白了,我学到这里理解的是
for后面()里填入了初始值、判断循环条件,循环迭代三个条件,所以循环语句{}里只填上所需要执行的循环就可以,而while后面的()里只有判断循环条件,所以while的初始值要提前说明,while的循环语句{}里需要加上循环迭代,否则初始值一直不能增减不能满足跳出循环的条件就陷入了死循环。
var arr=[80,96,75,50,60,100,92,50,62];
var i=0;
while(i<arr.length)
{
if(arr[i]<70)
{
document.write("成绩不好,不输出。"+"<br>");
continue;
}
else{
document.write("成绩是:"+arr[i]+"<br>");
}
i=i+1;
}
造成死循环的原因 如楼上所说 解决方法就是 把i=i+1 写在判断语句外面 想我写的那样 这样问题就解决了
你的问题出在continue. continue的用法是跳过这次循环还未执行的语句开始一次新的循环。你这里一旦碰到一个小于70的情况(你这里是第四个元素:50)到continue就直接回去再循环一次,但是i+1又没有执行,也就是说你又重新判断第四个元素。所以,您这个程序就停在了50这里,所以就死掉了。不要用while,用for
while(i<arr.length-1) 就好
i的值不可能大过arr.length 所以死循环了
JavaScript进阶篇
469389 学习 · 22585 问题
相似问题