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

关于continue用法,请大神帮忙分析下

<script type="text/JavaScript">
 var mynum =new Array(70,80,66,90,50,100,89);//定义数组mynum并赋值
 var i;
 for(i=0;i<mynum.length;i++)
 {
  	if(mynum[i]<60)
    {
	document.write("成绩不及格,不输出!"+"<br>");
    continue;
	}
	document.write("成绩:"+mynum[i]+"及格,输出!"+"<br>");
}


/*这是我用while写的,但是写上去浏览器直接崩溃,我想问问是我哪里语法不对,造成死循环还是continue根本不适用于while循环
var score=[85,75,42,99,67,56,88,99];
var i=-1;
while(i<score.length)
{
if(score[i]<60)
{
 continue;
 }
 document.write("各科成绩分数公布,未达到60不显示"+score[i]+"<br>");
 i++;
 }      */
</script>


提问者:景稀 2015-10-01 03:17

个回答

  • 大块吃肉188
    2016-08-04 21:25:03

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>continue与while</title>
    <script type="text/javascript">
    var mynum=new Array(70,80,66,90,50,100,89);
    var i=0;
    while(i<mynum.length)
    {
    if (mynum[i]<60) 
    {
    document.write("成绩不及格。不输出!"+"<br/>");
    i=i+1;
    continue;
    }
    document.write("成绩是:"+mynum[i]+"及格,输出!"+"<br/>");
    i=i+1;
    }
    </script>
    </head>
    <body>
    
    </body>
    </html>

    为了防止进入if中跳过本次循环,而导致i一直等于3,所以又加了一句i=i+1;

  • 慕粉3279136
    2016-05-01 15:07:36

    continue上面加上i++

    if(score[i]<60)
    {i++;
     continue;
     }


  • 不加香菜不要葱
    2016-04-15 17:41:32

    while循环中i=-1在进行第一次if判断之后就由continue跳出了,没有执行后面的i++,所以陷入了i=-1的死循环。而for循环中i++在for语句中,即使跳出此次循环,i也会加1进行循环直到结束。

  • 世界的我
    2016-03-25 19:23:59

    if(score[i]<60)改为if(score[i++]<60),删掉后面的i++即可

  • 烜烜
    2016-01-29 12:40:25

    undefined这个问题我想了好久才发现是这里的问题

    var score=[85,75,42,99,67,56,88,99];

    var i=-1;

    while(i<score.length)

    //

    我们是从-1开始进入while的,所以这里 while(i<score.length)

    实际上是-1 0 1 2 3 4 5 6 7 8,所以就不能用到while(i<score.length),改为while(i<7)

    问题出在了i=-1这里

  • 梦小欣
    2015-12-04 14:42:20

    1、首先你定义了i=-1,score[-1]是undifined,i++没有执行就跳出了while循环,所以i一直等于-1,因此造成死循环;

    2、当你把1++放到if前面时,在执行if语句时,i=0,所以可以一直执行,i也一直自增,但当i>score.length时,score数组中没有定义,所以值为undefined;

  • 景稀
    2015-10-01 03:33:40

    var score=[85,75,42,99,67,56,88,99];

    var i=-1;

    while(i<score.length)

    {

    i++;

    if(score[i]<60)

    {

     continue;

     }

     document.write("各科成绩分数公布,未达到60不显示"+score[i]+"<br>");

     

     }   

    把 i++自增放到if前面可以了!

    新问题又来了,浏览器右侧显示效果栏最后一行 各科成绩分数公布,未达到60不显示undefined

    我能想到应该是 i赋值为-1出问题了(我猜的......),可是想不明白到底怎么出差的,没思路,大神能不能讲解下- -