亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號