在javascript中,我們可能很少會去用到 Label 語句,但是熟練的應用 Label 語句,尤其是在嵌套循環中熟練應用 break, continue 與 Label 可以精確的返回到你想要的程序的位置。
Label 語句,按書本上說的語法是:
Label: statement
如: begin: for (var i = 0; i < 10 ; i++ ){
alert(i);
}
舉一個比較典型的例子,看完后即明白 Label 的應用:(未添加 Label)
var num = 0;
for (var i = 0 ; i < 10 ; i++){
for (var j = 0 ; j < 10 ; j++){
if( i == 5 && j == 5 ){
break;
}
num++;
}
}
alert(num); // 循環在 i 為5,j 為5的時候跳出 j循環,但會繼續執行 i 循環,輸出 95
對比使用了 Label 之后的程序:(添加 Label 后)
var num = 0;
outPoint:
for (var i = 0 ; i < 10 ; i++){
for (var j = 0 ; j < 10 ; j++){
if( i == 5 && j == 5 ){
break outPoint;
}
num++;
}
}
alert(num); // 循環在 i 為5,j 為5的時候跳出雙循環,返回到outPoint層繼續執行,輸出 55
對比使用了break、continue語句:
var num = 0;
outPoint:
for(var i = 0; i < 10; i++)
{
for(var j = 0; j < 10; j++)
{
if(i == 5 && j == 5)
{
continue outPoint;
}
num++;
}
}
alert(num); //95
從alert(num)的值可以看出,continue outPoint;語句的作用是跳出當前循環,並跳轉到outPoint(標簽)下的for循環繼續執行。