document 這一句就是你的第 16 行,我們簡稱 16,16 未屏蔽時(shí),是屬于 if 語句體的,而后面的 C 循環(huán)則是獨(dú)立于 if 語句,不受 if 的影響,所以每當(dāng) B 循環(huán)一次,C 都要完整的循環(huán) 4 次,這 4 次 C 的循環(huán)會打印一個(gè) 小A,(這里我們先拿 小A 舉例,其他的類推),而 B 一共會循環(huán) 4 次,所以 C 就會打印出 4 個(gè) 小A,在第 4 次打印 小A 之前,if 語句條件滿足,會走 16,所以先打印一次數(shù)組。
當(dāng) 16 屏蔽,由于 if 未加大括號 {},會默認(rèn)將緊隨其后的一句代碼歸入 if 語句體,這里的 C 循環(huán)是一個(gè)整體,緊隨 if 之后,所以被歸入 if 語句體,那么也就是說,只有當(dāng) if 語句條件滿足時(shí),C 循環(huán)才會發(fā)生。而在 B 循環(huán)的 4 次循環(huán)中,if 語句只會滿足一次,就是 “大一” 那次,這時(shí) C 發(fā)生 4 次循環(huán),打印一個(gè) 小A,然后 B 循環(huán)結(jié)束,A 循環(huán)進(jìn)入下一次循環(huán)。所以最后你得出的結(jié)果是正確的。
2016-10-10
這個(gè)問題可能當(dāng)面講很好理解,通過打字有點(diǎn)難說清,我試著說說
首先明確,你的代碼中嵌套了三個(gè) for 循環(huán),
其實(shí)可以看到,你的 B 和 C 兩個(gè)循環(huán)是一樣的,有冗余,這里先不討論,先解釋為什么出現(xiàn)你說的現(xiàn)象。
你的 B 循環(huán)內(nèi),C 循環(huán)之前有兩句代碼,
document 這一句就是你的第 16 行,我們簡稱 16,16 未屏蔽時(shí),是屬于 if 語句體的,而后面的 C 循環(huán)則是獨(dú)立于 if 語句,不受 if 的影響,所以每當(dāng) B 循環(huán)一次,C 都要完整的循環(huán) 4 次,這 4 次 C 的循環(huán)會打印一個(gè) 小A,(這里我們先拿 小A 舉例,其他的類推),而 B 一共會循環(huán) 4 次,所以 C 就會打印出 4 個(gè) 小A,在第 4 次打印 小A 之前,if 語句條件滿足,會走 16,所以先打印一次數(shù)組。
當(dāng) 16 屏蔽,由于 if 未加大括號 {},會默認(rèn)將緊隨其后的一句代碼歸入 if 語句體,這里的 C 循環(huán)是一個(gè)整體,緊隨 if 之后,所以被歸入 if 語句體,那么也就是說,只有當(dāng) if 語句條件滿足時(shí),C 循環(huán)才會發(fā)生。而在 B 循環(huán)的 4 次循環(huán)中,if 語句只會滿足一次,就是 “大一” 那次,這時(shí) C 發(fā)生 4 次循環(huán),打印一個(gè) 小A,然后 B 循環(huán)結(jié)束,A 循環(huán)進(jìn)入下一次循環(huán)。所以最后你得出的結(jié)果是正確的。
你的代碼沒必要這樣寫,在課程下面的 “同學(xué)代碼”中,有很多同學(xué)的代碼,都寫得不錯(cuò),你可以看看,參照一下。
2016-10-10
for(var i=0;1<infos.length;i++){
????if(infos[i][3]="大一"){
????????????if(infos[i][1]="女生'"){
????????????????????? document.write("infos[i][0]") ?;
????????}
????}
}
2016-10-10
??? for(var j=0;j<infos[i].length;j++){
?? ??? ???? if(infos[i][j]=="大一")
?? ??? ??? ?document.write(infos[i]+"<br/>");
這里的代碼是判斷一行中所有符合你的條件“大一”的一個(gè)循環(huán),你設(shè)置你每循環(huán)一次就打印一次
2016-10-10
因?yàn)槟闶窃谘h(huán)里面輸出數(shù)組信息啊,除了16行還有20行。其實(shí)不需要那么麻煩的,用一個(gè)循環(huán)和一個(gè)判斷語句就可以完成這個(gè)練習(xí)了。