Cảm ơn bạn!
Lệnh continue trong JavaScript là gì?
JavaScript continue Statement
Câu lệnh continue
trong JavaScript được sử dụng để bỏ qua lần lặp hiện tại của vòng lặp và luồng của chương trình sẽ chuyển sang lần lặp tiếp theo.
Cú pháp của câu lệnh continue là:
continue [label];
label là tùy chọn và hiếm khi được sử dụng.
Chúng ta cùng xem qua ví dụ để hiểu rõ hơn nhé:
for (let i = 1; i <= 5; i++) {
// bỏ qua vòng lặp hiện tại nếu i = 2 hoặc i = 5
if (i == 2 || i == 5) {
continue;
}
console.log(i);
}
Kể quả chương trình trên là:
1
3
4
Khi điều kiện dừng lặp (i == 2 || i == 5)
là true thì continue sẽ thực hiện nhiệm vụ của nó là bỏ qua các lần lặp thứ hai và thứ năm. Điều đó có nghĩa là số 2
và 5
sẽ không được in ra.
Câu lệnh continue hầu như luôn được sử dụng với các câu lệnh điều kiện như câu lệnh if ... else.
break vs continue: Câu lệnh break sẽ kết thúc hoàn toàn vòng lặp. Tuy nhiên, câu lệnh continue chỉ bỏ qua lần lặp hiện tại.
Ví dụ sử dụng continue
trong vòng lặp while
:
// Tính tổng số >= 0 đã nhập vào
// Nếu nhập số âm thì dừng vòng lặp
// Nếu nhập kí tự không phải số thì cho nhập lại
let sum = 0;
let number = 0;
while (number >= 0) {
sum += number;
// lấy số vừa nhập gán vào number
number = parseInt(prompt('Nhập số: '));
// nếu input không phải số thì chạy code bên dưới
if (isNaN(number)) {
console.log('Bạn vừa nhập kí tự không phải số!');
number = 0; // gán lại number thành 0
continue; // chuyển sang lần lặp tiếp
}
}
console.log(`Tổng số bạn vừa nhập là ${sum}.`);
Chúng ta nhập thử số và kí tự không phải số và xem thử kết quả:
Nhập số: 1
Nhập số: 2
Nhập số: 3
Nhập số: homiedev
Bạn vừa nhập kí tự không phải số!
Nhập số: -3
Tổng số bạn vừa nhập là 6.
Khi người dùng nhập một kí tự không phải số, câu lệnh continue sẽ bỏ qua lần lặp hiện tại. Khi đó luồng của chương trình chuyển sang xét điều kiện của vòng lặp while (nếu true thì tiếp tục chạy vòng lặp). Khi người dùng nhập một số âm, vòng lặp kết thúc.
Trong chương trình trên, mình sử dụng method có sẵn của JavaScript isNaN()
để kiểm tra xem giá trị mà người dùng nhập vào có phải là số hay không.
Ví dụ: sử dụng continue cho nested loop
Khi continue
được sử dụng bên trong hai vòng lặp lồng nhau như dưới đây:
// vòng lặp ngoài
for (let i = 1; i <= 3; i++) {
// vòng lặp bên trong, có sử dụng continue
for (let j = 1; j <= 3; j++) {
if (j == 1) {
continue;
}
console.log(`i = ${i}, j = ${j}`);
}
}
Lúc này continue
bỏ qua lần lặp hiện tại của vòng lặp bên trong. Kết quả ta được:
i = 1, j = 2
i = 1, j = 3
i = 2, j = 2
i = 2, j = 3
i = 3, j = 2
i = 3, j = 3
Trong chương trình trên, khi gặp câu lệnh continue
, nó sẽ bỏ qua vòng lặp hiện tại ở vòng lặp bên trong và luồng của chương trình sẽ chuyển đến updateExpression (j++) của vòng lặp bên trong.
Do đó, giá trị của j = 1 sẽ không được in ra.
Hy vọng sau bạn viết này, các bạn sẽ hiểu được lệnh continue
trong JavaScript. Hẹn gặp các bạn trong các bạn viết sắp tới nhé 😁😁.