为了账号安全,请及时绑定邮箱和手机立即绑定

关于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>


正在回答

7 回答

<!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;

0 回复 有任何疑惑可以回复我~

continue上面加上i++

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


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

q_Amily

你这样是不可以的,输出很有问题 楼下这个方法可以 if(score[i]<60) {i++; continue; }
2016-08-01 回复 有任何疑惑可以回复我~
#2

MMJiao 回复 q_Amily

怎么运行不出来
2016-11-23 回复 有任何疑惑可以回复我~
#3

q_Amily

不好意思,i++是要加在if前面的 var score=[85,75,42,99,67,56,88,99]; var i=-1; while(i<score.length) //因为i从-1开始,所以会出现undefined,如果这里改为i<7,最后一行就不会出现undefined {i++; if(score[i]<60) {  continue;  }  document.write("各科成绩分数公布,未达到60不显示"+score[i]+"<br>");    }
2016-11-28 回复 有任何疑惑可以回复我~

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这里

3 回复 有任何疑惑可以回复我~

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

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

2 回复 有任何疑惑可以回复我~

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出问题了(我猜的......),可是想不明白到底怎么出差的,没思路,大神能不能讲解下- -

0 回复 有任何疑惑可以回复我~
#1

菜鸟_0024

为什么你会给i复制:-1? 数组从0开始算,-1你没有定义
2016-04-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468190    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信