景稀
2015-10-01 03:17
<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>
<!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;
continue上面加上i++
if(score[i]<60) {i++; continue; }
while循环中i=-1在进行第一次if判断之后就由continue跳出了,没有执行后面的i++,所以陷入了i=-1的死循环。而for循环中i++在for语句中,即使跳出此次循环,i也会加1进行循环直到结束。
if(score[i]<60)改为if(score[i++]<60),删掉后面的i++即可
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这里
1、首先你定义了i=-1,score[-1]是undifined,i++没有执行就跳出了while循环,所以i一直等于-1,因此造成死循环;
2、当你把1++放到if前面时,在执行if语句时,i=0,所以可以一直执行,i也一直自增,但当i>score.length时,score数组中没有定义,所以值为undefined;
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出问题了(我猜的......),可是想不明白到底怎么出差的,没思路,大神能不能讲解下- -
JavaScript进阶篇
468195 学习 · 21891 问题
相似问题