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

请问我的这个continue加上去怎么没效果,换成break或者删掉都能行

<!DOCTYPE  HTML>

<html>


<head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <title>continue</title>

  <script type="text/javascript">


 var myarr=new Array(6);

 myarr=[5,9,1,4,3];

 var i=0;


 while(i<=myarr.length){

   if(myarr[i]<2)

   {

   document.write("小于2,还是继续执行"+myarr[i]+"<br>");

   continue;

   }

   document.write("继续执行"+myarr[i]+"<br>");

   i++;

 }


  </script>

</head>


<body>

</body>


</html>


正在回答

5 回答

唉,是逻辑判断出问题了,你的if(myarr[i]<2){  }判断的是数组的值小于2,其中myarr[2]的值小于2,但是,一旦判断条件发生,便会直接跳出循环,继续下一个,而下面的i++便不会执行,于是,永远地,你的 i 不会增加,if也会继续,陷入了死循环。

for循环之所以不会发生死循环,是因为它的自增是在for循环条件中,而不是执行过程中的。

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

Orange1669 提问者

原来如此,弄了很久都没弄明白
2017-11-12 回复 有任何疑惑可以回复我~

我还想着难道while还有我不知道的额外特性?想了半天,结果自己运行一看,无限循环if的执行,就知道不是循环的问题了。

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

还有,i<=myarr;改成i<myarr;  否则会输出一个undefined(我试验是这样的)

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

为什么是个死循环(我觉得是),我也看不出来,但是我用for循环写了一下,是可以的

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

我靠,运行你的代码,浏览器直接卡死给自动退了,由此我推测你这估计是个死循环,所以你为什么要用while循环呢,你用for循环试一下(个人意见,正确与否有待验证)

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

Orange1669 提问者

我用的for确实是可以,教程也是for,我就是想试试用while行不行,但是现在看来有点问题。
2017-11-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问我的这个continue加上去怎么没效果,换成break或者删掉都能行

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号