问答详情
源自:4-9 继续循环continue

老师这样写有啥不对?请指导哈

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;

}


提问者:qq_菜鸟也是鸟 2016-05-13 12:41

个回答

  • qq_请叫我不靠谱_0
    2016-12-16 15:14:41

    不知道过了这么长时间你是不是早就弄明白了,我学到这里理解的是

    for后面()里填入了初始值、判断循环条件,循环迭代三个条件,所以循环语句{}里只填上所需要执行的循环就可以,而while后面的()里只有判断循环条件,所以while的初始值要提前说明,while的循环语句{}里需要加上循环迭代,否则初始值一直不能增减不能满足跳出循环的条件就陷入了死循环。

  • 慕娘9282524
    2016-05-13 15:37:12

    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  写在判断语句外面  想我写的那样  这样问题就解决了


  • 七八刀
    2016-05-13 13:13:38

    你的问题出在continue. continue的用法是跳过这次循环还未执行的语句开始一次新的循环。你这里一旦碰到一个小于70的情况(你这里是第四个元素:50)到continue就直接回去再循环一次,但是i+1又没有执行,也就是说你又重新判断第四个元素。所以,您这个程序就停在了50这里,所以就死掉了。不要用while,用for

  • HxString
    2016-05-13 13:13:25

    while(i<arr.length-1) 就好

  • fcpglss
    2016-05-13 13:02:28

    i的值不可能大过arr.length 所以死循环了