Lable語句用法(摘自Javascript高級程序設計)
break 和 continue 語句都可以與 label 語句聯合使用,從而返回代碼中特定的位置。這種聯合
使用的情況多發生在循環嵌套的情況下,如下面的例子所示:
- break
var num = 0;
outermost:
for (var i=0; i < 10; i++) {
for (var j=0; j < 10; j++) {
if (i == 5 && j == 5) {
break outermost;
}
num++;
}
}
alert(num); //55
在這個例子中,outermost 標籤表示外部的 for 語句。如果每個循環正常執行 10 次,則 num++
語句就會正常執行 100 次。換句話說,如果兩個循環都自然結束,num 的值應該是 100。但內部循環中
的 break 語句帶了一個參數:要返回到的標籤。添加這個標籤的結果將導致 break 語句不僅會退出內
部的 for 語句(即使用變量 j 的循環),而且也會退出外部的 for 語句(即使用變量 i 的循環)。爲此,
當變量 i 和 j 都等於 5 時,num 的值正好是 55。
自制流程圖(見笑了)
同樣,continue 語句也可以像這樣與 label 語句聯
用,如下面的例子所示:
- continue
var num = 0;
outermost:
for (var i=0; i < 10; i++) {
for (var j=0; j < 10; j++) {
if (i == 5 && j == 5) {
continue outermost;
}
num++;
}
}
alert(num); //95
在這種情況下,continue 語句會強制繼續執行循環——退出內部循環,執行外部循環。當 j 是 5
時,continue 語句執行,而這也就意味着內部循環少執行了 5 次,因此 num 的結果是 95。
自制流程圖(見笑了)
雖然聯用 break、continue 和 label 語句能夠執行復雜的操作,但如果使用過度,也會給調試
帶來麻煩。在此,我們建議如果使用 label 語句,一定要使用描述性的標籤,同時不要嵌套過多的循環。