Tuyên bố nhãn
Các Tuyên bố nhãn được sử dụng với break
và continue
tuyên bố và phục vụ để xác định tuyên bố mà các break
và continue
tuyên bố áp dụng.
Chúng ta sẽ nói nhiều hơn về break
và continue
báo cáo dưới đây.
cú pháp
labelname:
statements
Cách sử dụng
Nếu không sử dụng một labeled
tuyên bố break
câu lệnh chỉ có thể thoát ra khỏi một vòng lặp hoặc một switch
bản tường trình. Sử dụng một labeled
tuyên bố cho phép break
để nhảy ra khỏi bất kỳ khối mã nào.
Ví dụ
foo: {
console.log("This prints:");
break foo;
console.log("This will never print.");
}
console.log("Because execution jumps to here!")
/* output
This prints:
Because execution jumps to here! */
Khi được sử dụng với một continue
tuyên bố labeled
câu lệnh cho phép bạn bỏ qua một vòng lặp, lợi thế đến từ việc có thể nhảy từ vòng lặp bên trong sang vòng lặp bên ngoài khi bạn có các câu lệnh vòng lặp lồng nhau. Nếu không sử dụng một labeled
câu lệnh, bạn chỉ có thể nhảy ra khỏi vòng lặp hiện có để chuyển sang next iteration of the same loop.
Ví dụ
// without labeled statement, when j==i inner loop jumps to next iteration
function test() {
for (var i = 0; i < 3; i++) {
console.log("i=" + i);
for (var j = 0; j < 3; j++) {
if (j === i) {
continue;
}
console.log("j=" + j);
}
}
}
/* output
i=0 (note j=0 is missing)
j=1
j=2
i=1
j=0 (note j=1 is missing)
j=2
i=2
j=0
j=1 (note j=2 is missing)
*/
// using a labeled statement we can jump to the outer (i) loop instead
function test() {
outer: for (var i = 0; i < 3; i++) {
console.log("i=" + i);
for (var j = 0; j < 3; j++) {
if (j === i) {
continue outer;
}
console.log("j=" + j);
}
}
}
/*
i=0 (j only logged when less than i)
i=1
j=0
i=2
j=0
j=1
*/
Tuyên bố phá vỡ
Các nghỉ câu lệnh kết thúc vòng lặp hiện tại, switch
hoặc label
câu lệnh và chuyển điều khiển chương trình sang câu lệnh theo sau câu lệnh đã kết thúc.
break;
Nếu nghỉ được sử dụng trong một câu lệnh có nhãn, cú pháp như sau:
break labelName;
ví dụ
Hàm sau đây có một nghỉ tuyên bố chấm dứt while
vòng lặp khi tôi là 3, rồi trả về giá trị 3 * x.
function testBreak(x) {
var i = 0;
while (i < 6) {
if (i == 3) {
break;
}
i += 1;
}
return i * x;
}

Mã vận hành
Trong ví dụ sau, bộ đếm được thiết lập để đếm từ 1 đến 99; tuy nhiên, nghỉ câu lệnh kết thúc vòng lặp sau 14 lần đếm.
for (var i = 1; i < 100; i++) {
if (i == 15) {
break;
}
}

Mã vận hành
tiếp tục tuyên bố
Các tiếp tục câu lệnh kết thúc việc thực thi các câu lệnh trong lần lặp hiện tại của vòng lặp hiện tại hoặc vòng lặp đã dán nhãn và tiếp tục thực hiện vòng lặp với lần lặp tiếp theo.
continue;
Nếu tiếp tục được sử dụng trong một câu lệnh có nhãn, cú pháp như sau:
continue labelName;
Trái ngược với nghỉ bản tường trình, tiếp tục không chấm dứt hoàn toàn việc thực hiện vòng lặp; thay thế:
- trong một
while
vòng lặp, nó nhảy trở lại điều kiện. - trong một
for
vòng lặp, nó nhảy đến biểu thức cập nhật.
ví dụ
Ví dụ sau đây cho thấy một while
vòng lặp có một tiếp tục câu lệnh thực thi khi giá trị của tôi là 3. Như vậy, N nhận các giá trị 1, 3, 7, 12.
var i = 0;
var n = 0;
while (i < 5) {
i++;
if (i === 3) {
continue;
}
n += i;
console.log (n);
}

Mã vận hành
Trong ví dụ sau, một vòng lặp lặp từ 1 đến 9. Các câu lệnh giữa tiếp tục và kết thúc của for
cơ thể bị bỏ qua vì việc sử dụng tiếp tục phát biểu cùng với biểu thức (i < 5)
.
for (var i = 1; i < 10; i++) {
if (i < 5) {
continue;
}
console.log (i);
}

Mã vận hành