Hướng dẫn câu lệnh continue trong JavaScript
Ngoài ra còn có câu lệnh continue,
khởi động một vòng lặp mới. Câu lệnh này
đôi khi có thể hữu ích để đơn giản hóa mã,
mặc dù hầu như luôn có thể giải quyết nhiệm vụ
mà không cần nó. Hãy xem một ví dụ thực tế.
Giả sử chúng ta có một mảng số. Hãy
duyệt qua nó bằng vòng lặp và những số chia hết
cho 2, chúng ta sẽ bình phương và xuất ra
console, còn những số chia hết cho 3,
chúng ta sẽ lập phương và xuất ra console. Đây là giải pháp
cho nhiệm vụ được mô tả:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
console.log(result);
} else if (elem % 3 === 0) {
result = elem * elem * elem;
console.log(result);
}
}
Như bạn thấy, dòng console.log(result)
được lặp lại hai lần. Hãy đưa nó ra ngoài
if, như thế này:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
} else if (elem % 3 === 0) {
result = elem * elem * elem;
}
console.log(result); // đã đưa việc xuất ra ngoài điều kiện
}
Tuy nhiên, bây giờ script của chúng ta hoạt động hơi
khác một chút: hóa ra cả những phần tử thông thường,
không được xử lý qua if của chúng ta, cũng sẽ
thực hiện việc xuất biến result
ra console, điều mà theo điều kiện của nhiệm vụ chúng ta
không cần.
Hãy sửa vấn đề bằng cách thêm vào if của chúng ta
một điều kiện else nữa, điều kiện này sẽ kích hoạt
cho các phần tử không chia hết cho 2 và
3, và gọi câu lệnh continue ở đó,
câu lệnh này ngay lập tức sẽ chuyển chúng ta
sang một vòng lặp mới:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 == 0) {
result = elem * elem;
} else if (elem % 3 == 0) {
result = elem * elem * elem;
} else {
continue; // chuyển sang vòng lặp mới
}
console.log(result); // sẽ thực thi nếu chia hết cho 2 hoặc 3
}
Viết một vòng lặp, chỉ xuất ra
các số chẵn từ 1 đến 100,
bỏ qua các số lẻ bằng cách sử dụng continue.