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

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

為什么小于60的數會在結果中會出現兩次

<script?type="text/JavaScript">
var?mynum?=new?Array(70,80,66,90,50,100,89,99,102,23,60);//定義數組mynum并賦值
var?i=0;
while(i<mynum.length)
{
??if(mynum[i]<60)
???{
????document.write("成績"+mynum[i]+"不及格,不用循環了"+"<br>");
???}

??????document.write("成績:"+mynum[i]+"及格,繼續循環"+"<br>");
??????i=i+1;
}
</script>

結果:

http://img1.sycdn.imooc.com//592fbbd80001f2f302810271.jpg

我還沒有加break停止循環,想試試不加會事什么效果。

為什么明明小于60的數卻會出現兩個,在判斷mynum[i]>60不成立后,不應該是不顯示這行輸出嗎,為什么還是顯示了,感覺沒有進行判斷。難道跟break有關系?

正在回答

5 回答

沒毛病???

<script?type="text/JavaScript">
var?mynum?=new?Array(70,80,66,90,50,100,89,99,102,23,60);//定義數組mynum并賦值
var?i=0;
while(i<mynum.length)
{
??if(mynum[i]<60)//?判斷mynum[i]是否不及格,是則輸出下面代碼,不是則不輸出。
???{
????document.write("成績"+mynum[i]+"不及格,不用循環了"+"<br>");
???}
??????????//?你問題出現在這下面,你這里是輸出所有人的成績,不管及不及格都是輸出的
??????????//?你上面不及格的代碼執行了一次,這里再執行一次而已
??????document.write("成績:"+mynum[i]+"及格,繼續循環"+"<br>");
??????i=i+1;//?循環條件更新
}
</script>

老鐵懂了吧?

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

Chris_克瑞斯 提問者

非常感謝!
2017-06-02 回復 有任何疑惑可以回復我~

??? <script type="text/JavaScript">

?? ??? ?var mynum =new Array(70,80,66,90,50,100,89,99,102,23,60);//定義數組mynum并賦值

?? ??? ?var i=0;

?? ??? ?while(i<mynum.length)

?? ??? ??? ?{

? ?? ??? ??? ??? ?if(mynum[i]<60)

? ??? ??? ??? ??? ?{

?? ??? ??? ??? ??? ?document.write("成績"+mynum[i]+"不及格,不用循環了"+"<br>");

? ??? ??? ??? ??? ?} else{

? ??? ??? ??? ??? ??? ?document.write("成績:"+mynum[i]+"及格,繼續循環"+"<br>");

? ??? ??? ??? ??? ?}

??? ??? ??? ??? ?i=i+1;
?? ??? ??? ?}

?? ?</script>



試一下,好使的話自己對比看看


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

你的循環用的不對

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

這不是break的問題,你能出來就很好了,按理說你應該無線循環,知道崩潰的,i=i+1不應該寫在else分支中的,i這個全局變量也很有可能埋坑啊。

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

Chris_克瑞斯 提問者

去掉else也是一樣的情況,還是沒太明白
2017-06-01 回復 有任何疑惑可以回復我~

因為你走前一個分支的時候沒有執行i=i+1

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

Chris_克瑞斯 提問者

意思就是,當值小于60時,mynum[i]<60判斷成立后,如果不加break終止,它就會繼續輸出第二個內容,導致值小于60的輸出兩遍內容。還是沒太明白
2017-06-01 回復 有任何疑惑可以回復我~
#2

Chris_克瑞斯 提問者

我去掉了else,是不是可以這么理解: 當值小于60時,它滿足了兩個條件“while(i<mynum.length)”和“if(mynum[i]<60)”,所以這兩個內容會同時輸出,而值大于60時,并不滿足“if(mynum[i]<60)”的條件,所以只輸出while中的內容 能否詳細說明一下跟i=i+1的關系在哪? 初學者,很茫然?。。。?/div>
2017-06-01 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么小于60的數會在結果中會出現兩次

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

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