break 語句和 continue 語句
break語句和continue語句都具有跳轉作用,可以讓代碼不按既有的順序執行。
break語句用於跳出代碼塊或循環。
var i = 0;
while(i < 100) { console.log('i 當前為:' + i); i++; if (i === 10) break;}
上面代碼只會執行10次循環,一旦i等於10,就會跳出循環。
for循環也可以使用break語句跳出循環。
for (var i = 0; i < 5; i++)
{ console.log(i); if (i === 3) break;
}
// 0
// 1
// 2
// 3
上面代碼執行到i等於3,就會跳出循環。
continue語句用於立即終止本輪循環,返回循環結構的頭部,開始下一輪循環。
var i = 0;
while (i < 100){ i++; if (i % 2 === 0) continue; console.log('i 當前為:' + i);
}
上面代碼只有在i為奇數時,才會輸出i的值。如果i為偶數,則直接進入下一輪循環。
如果存在多重循環,不帶參數的break語句和continue語句都只針對最內層循環。
標簽(label)
JavaScript 語言允許,語句的前面有標簽(label),相當於定位符,用於跳轉到程序的任意位置,標簽的格式如下。
label: 語句
標簽可以是任意的標識符,但不能是保留字,語句部分可以是任意語句。
標簽通常與break語句和continue語句配合使用,跳出特定的循環。
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
if (i === 1 && j === 1) break top;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
上面代碼為一個雙重循環區塊,break命令后面加上了top標簽(注意,top不用加引號),滿足條件時,直接跳出雙層循環。如果break語句后面不使用標簽,則只能跳出內層循環,進入下一次的外層循環。
continue語句也可以與標簽配合使用。
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
if (i === 1 && j === 1) continue top;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
// i=2, j=0
// i=2, j=1
// i=2, j=2
上面代碼中,continue命令后面有一個標簽名,滿足條件時,會跳過當前循環,直接進入下一輪外層循環。如果continue語句后面不使用標簽,則只能進入下一輪的內層循環。
