1.循環(huán)是什么?
- 重復(fù)執(zhí)行一段代碼
- 死循環(huán)沒有意義
2. while
- 先判斷,后循環(huán)
- while(條件表達(dá)式) { 邏輯代碼; }
3. do...while
- 先執(zhí)行,在判斷,不管條件是否成立,至少會執(zhí)行一次
- do { 邏輯代碼; } while(條件表達(dá)式);
4. for循環(huán)
- for(表達(dá)式1, 條件表達(dá)式2, 表達(dá)式3) { 邏輯代碼; }
- 執(zhí)行方式: 表達(dá)式1 -> (表達(dá)式2 -> 邏輯代碼 -> 表達(dá)式3 ) -> (表達(dá)式2 -> 邏輯代碼 -> 表達(dá)式3 ) -> ... 直到條件表達(dá)式2不成立結(jié)束循環(huán)
- 一個死循環(huán): for( ; ; ) {}
// eg. 拓展
for(var i = 0, j=0; i < 10, j < 5; i++, j++){} // 結(jié)果: i=5, j=5
// 注意: 當(dāng)有多個條件時, 只看最后一個條件
5. 多重循環(huán)的執(zhí)行思路
- 外層循環(huán)控制行數(shù)
- 內(nèi)層循環(huán)控制列數(shù)
- 短循環(huán)在外層, 長循環(huán)在內(nèi)層
6. break 和 continue
- break 中斷, 控制, 防止穿透
- 可以用在switch()和循環(huán)中
- 結(jié)束就近循環(huán),還可以結(jié)束指定的循環(huán)(打標(biāo)記)
aaa: for (var i = 0; i < 5; i++) {
console.log('i' + i); // i0
bbb: for (var j = 0; j < 5; j++) {
console.log('j' + j); // j0
break aaa; // 結(jié)束aaa這個循環(huán)
}
}
2.continue 繼續(xù)
- 只能用在循環(huán)中
for (var i = 1; i <= 5; i++) {
if (i == 2) {
continue; // 結(jié)束本次循環(huán)
}
console.log(i); // 1 3 4 5
}
- break與continue的區(qū)別
- break結(jié)束整個循環(huán)
- continue結(jié)束'本次'循環(huán)