1.break語句和continue語句都可以讓代碼不按既有的順序執(zhí)行,具有跳轉(zhuǎn)作用。
(1) break語句用于跳出代碼塊或循環(huán)备韧。
var i=0;
while (i<10) {
console.log(i);
i++;
if (i === 3) break;
}
(輸出: 0 , 1 , 2)
for (var i = 0; i < 10; i++) {
if (i === 3) break;
console.log(i);
}
(輸出: 0 ,1 , 2 )
(2) continue語句用于立即終止本輪循環(huán),返回循環(huán)結(jié)構(gòu)的頭部昆稿,開始下一輪循環(huán)辫封。
for (var i = 0; i < 10; i++) {
if (i === 3) continue;
console.log(i);
}
(輸出: 0 , 1 , 2 , 4, 5, 6, 7, 8, 9 )
(3) 如果存在多重循環(huán),不帶標(biāo)簽的break語句和continue語句都只針對(duì)最內(nèi)層循環(huán)抹估。
2.帶有標(biāo)簽的 break 語句, continue 語句
(1) 標(biāo)簽: JavaScript語言允許缠黍,語句的前面有標(biāo)簽(label),相當(dāng)于定位符药蜻,用于跳轉(zhuǎn)到程序的任意位置瓷式,標(biāo)簽的格式如下替饿。
label:
statement
(2) 標(biāo)簽可以是任意的標(biāo)識(shí)符,但是不能是保留字贸典,語句部分可以是任意語句视卢。
(3) 標(biāo)簽通常與 break 語句和 continue 語句配合使用,跳出特定的循環(huán)廊驼。
outer:
for (var i = 0; i < 3; i++) {
inner:
for ( var j = 0; j < 3; j++) {
if( i===1 && j===1) break outer;
console.log(i, j);
}
}
輸出: 0 0, 0 1, 0 2, 1 0
top:
for (var i = 0; i < 3; i++) {
inner:
for ( var j = 0; j < 3; j++) {
if( i===1 && j===1) break inner;
console.log(i, j);
}
}
輸出: 0 0, 0 1, 0 2, 1 0 , 2 0, 2 1 , 2 2
(4) continue也是類似,如果 break 語句或者 continue 語句后面跟上了對(duì)應(yīng)循環(huán)的標(biāo)簽,就是打破標(biāo)簽對(duì)應(yīng)循環(huán)的執(zhí)行.如果多層循環(huán)中沒有跟上標(biāo)簽,則是打破最內(nèi)層循環(huán)的執(zhí)行.