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

在这里为什么用continue就会崩掉...重启两次电脑了?

var mynum=new Array("one","two","three","four","five");
var i=0;
 while(i<mynum.length)
  {  
     if(mynum[i]=="four")  
       {
           document.write("是他,是他,就是他,我们的朋友小哪吒!"+mynum[i]);
           break;   
       }
           document.write("???"+mynum[i]+"");
           i++;
  }


正在回答

4 回答

if的执行体没i++,到了four就永远都是four

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

一楼正解,continue表示跳过本次循环,这里执行到continue时后面的i++并不会执行,i始终为0,重新while循环执行到continue为止,死循环。。

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

Leibniz233

我没有懂,能麻烦你给我解释一下吗?一开始if里面的条件并不满足,不满足的话,i++是可以执行的吧?直到第四次循环满足了条件之后,才能执行break,我这么想哪里不对吗?
2017-06-01 回复 有任何疑惑可以回复我~
#2

Molly喜 回复 Leibniz233

思路没什么问题。慢慢看解析的过程就理解了,浏览器从上往下解析js代码,前几个,if条件语句不满足条件所以跳过,执行i++。但当if条件满足的时候,执行里面的continue,跳出本次循环,本应该执行下一次循环,但浏览器找了半天没找到迭代条件,i值还是原值,只能一次一次重复刚刚上面的过程.....死亡之旅(ps continue用于for循环的时候可以避免这样情况,因为for循环的迭代条件是执行完括号内内容就加一)
2017-12-12 回复 有任何疑惑可以回复我~

哈哈,看到好多卡在这里的,看了好些还是没明白,最后终于有一个懂了~谢谢!

0 回复 有任何疑惑可以回复我~
break改成 continue 之后,程序执行到continue之后, i++是没有走的,也就是值是没有变化的 ,导致死循环 while跳不出去
1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在这里为什么用continue就会崩掉...重启两次电脑了?

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