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

continue到底能不能在while里用? 这简直是个悬疑故事

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

上面这样写,包括do...while,就死机了。

那问题来了,这里面到底哪里不对? 看以前的问答里有人说在while里i++要放到if前面,屁,那就从89开始了,最后还来个undefined。   求个真大腿来简单易俗的讲解下为什么while不行?还能不能行? for为什么行?   谢谢
下面这样写,就没毛病。

 var myscore=[100,89,57,91]//定义数组mynum并赋值
 var i;
 for(i=0;i<myscore.length;i++)
 {
      if(myscore[i]<60)
    {
    document.write("成绩不及格,不输出!"+"<br>");
    continue;
    }
    document.write("成绩:"+myscore[i]+"及格,输出!"+"<br>");
}


正在回答

2 回答

个人觉得,for的使用和while的使用情况还是有很大区别的,像这种需要遍历的就用for就好了,使用while再使用continue也是可以用的,就是容易陷入死循环,自增条件一般是放在前面的,你看下面的代码,功能是可以实现的,但是我感觉一点都不规范,因为一上来就自增,所以起点是-1,这样不方便维护


var myscore=[100,89,57,91],i=-1;
     while(i<myscore.length-1)
    {
		
		i++;
        if(myscore[i]<60)
        {
             document.write("成绩不及格,不输出!"+"<br/>");
             continue;
        }
		document.write("成绩:"+myscore[i]+"及格,输出!"+"<br>");
        
        
    }


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

雷叔爱吃各种面 提问者

i=-1 || i++放在if前面,在此例确实可以,谢谢。for和while毕竟是不同的循环机制,continue在for里不会有冲突,我大概是这样理解的
2016-12-27 回复 有任何疑惑可以回复我~

执行到continue后,i的值没有增加,永远等于2,myscore[i]=57,所以就陷入了死循环。

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

千之叶

i++; continue; 这样写就不会错了
2016-12-22 回复 有任何疑惑可以回复我~
#2

那谁很靠谱3587144 回复 千之叶

你这个是正解
2016-12-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

continue到底能不能在while里用? 这简直是个悬疑故事

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

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

帮助反馈 APP下载

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

公众号

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