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

为什么我把for命令改成while运行浏览器就会崩溃?

 var i=0; while(i<mynum.length) {if(mynum[i]<60) document.write("成绩不及格,不输出!"+"<br>"); continue; } document.write("成绩:"+mynum[i]+"及格,输出!"+"<br>");        i=i+1; }

正在回答

7 回答

  var mynum = new Array(70,80,66,90,50,100,89);//定义数组mynum并赋值

  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;

  }


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

牧牛娃

正解!!!!!!!!!!!
2019-11-14 回复 有任何疑惑可以回复我~

为什么把i++放最后也会崩溃???

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

我改来改去的崩溃了十几次了

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

首先if(mynum[i]<60)后面没加{,然后你在document.write("成绩不及格,不输出!"+"<br>"); continue;之间加个i=i+1,不然I永远小于mynum.length,死循环

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

continue只负责让一个循环语句产生”跳回“,即最接近continue的里层循环语句,因为if不是循环语句,continue不会找它,continue直接找 while(i<mynum.length),所以会死循环

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

break是结束整个循环体,continue是结束单次循环,当遇到continue时,就会回到开始的地方进行循环而执行不到i=i+1;又因i<mynum.length和mynum[i]<60始终成立,再次遇到continue又回到起点开始循环,就形成了一个死循环,直到服务器崩溃。for循环的话,每循环一次就会自动对i进行加1的操作,所以不会造成死循环的现象。

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

风起临冬

是因为while里的i=i+1是写在后面的,for的i=i+1写在开头的原因吗
2018-07-28 回复 有任何疑惑可以回复我~

你先看 for循环的语法;在瞧瞧while的语法,,就明白了,,,,他们两个之间结构不一样的

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

举报

0/150
提交
取消

为什么我把for命令改成while运行浏览器就会崩溃?

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