Vòng lặp

Bài 5 – Sử dụng vòng lặp trong JavaScript để lặp lại hành động và xử lý danh sách hiệu quả.

18/11/2025 DaiPhan
Bài 5 / 12

Vòng Lặp

Vòng lặp giúp chương trình lặp lại hành động nhiều lần mà không cần viết lại cùng một đoạn code. Đây là công cụ mạnh mẽ để xử lý danh sách, tính toán, truy vấn dữ liệu và vận hành logic tự động.


1. Vì sao phải dùng vòng lặp?

Ví dụ: in số từ 1 đến 100
→ Nếu không có vòng lặp, bạn phải viết 100 dòng code.
Vòng lặp giúp bạn làm việc đó bằng 3 dòng.

Tư duy cốt lõi:
“Có hành động cần lặp lại? Dùng vòng lặp.”


2. Vòng lặp For – phổ biến nhất

Cấu trúc:

for (khởi_tạo; điều_kiện; bước_lặp) {
  // code lặp
}

Ví dụ:

for (let i = 1; i <= 5; i++) {
  console.log("Lần:", i);
}

Flow hoạt động:

  • Khởi tạo biến i
  • Kiểm tra điều kiện
  • Chạy code
  • Tăng i
  • Lặp lại

🔑 GHI NHỚ: Vòng lặp for phù hợp khi biết trước số lần lặp

3. Vòng lặp While – lặp khi điều kiện còn đúng

Phù hợp cho các trường hợp không biết trước số lần lặp.

let count = 0;

while (count < 3) {
  console.log("Count:", count);
  count++;
}

🔑 GHI NHỚ: While chạy liên tục khi điều kiện còn đúng

4. Do While – chạy ít nhất 1 lần

let n = 0;

do {
  console.log("N:", n);
  n++;
} while (n < 3);

Khác biệt: Code chạy một lần trước, rồi mới kiểm tra điều kiện.

🔑 GHI NHỚ: Do While luôn chạy ít nhất 1 lần dù điều kiện sai

5. Vòng lặp dành cho mảng (rất quan trọng)

Với danh sách dữ liệu, bạn dùng các vòng lặp tối ưu:

5.1. for…of – đơn giản, dễ đọc

let scores = [8, 9, 10];

for (let score of scores) {
  console.log(score);
}

5.2. forEach – viết gọn cho mảng

scores.forEach(s => console.log(s));

5.3. map – tạo mảng mới từ mảng hiện có

let doubled = scores.map(s => s * 2);

5.4. filter – lọc dữ liệu

let passed = scores.filter(s => s >= 8);

🔑 GHI NHỚ:

  • for…offorEach dành cho lặp
  • map, filter dành cho xử lý danh sách

6. Dừng vòng lặp: break và continue

break – thoát khỏi vòng lặp

for (let i = 1; i <= 10; i++) {
  if (i === 5) break;
  console.log(i);
}

continue – bỏ qua vòng hiện tại

for (let i = 1; i <= 5; i++) {
  if (i === 3) continue;
  console.log(i);
}

🔑 GHI NHỚ:

  • break: Thoát hoàn toàn khỏi vòng lặp
  • continue: Bỏ qua lần lặp hiện tại, chuyển sang lần kế tiếp

7. Lỗi thường gặp khi dùng vòng lặp

  • Quên tăng biến đếm → vòng lặp vô hạn
  • Lặp sai điều kiện → không chạy hoặc chạy quá nhiều
  • for…in dùng sai cho mảng → dễ gặp lỗi (không nên dùng for…in cho mảng)
  • Lặp dữ liệu lớn mà không tối ưu → gây chậm ứng dụng

⚠️ GHI NHỚ: Luôn kiểm tra điều kiện dừng và cập nhật biến đếm trong vòng lặp

8. Bài tập thực hành

Bài 1

In các số từ 1 đến 100.

Bài 2

Tính tổng từ 1 đến 50 bằng vòng lặp for.

Bài 3

Cho mảng:

let prices = [100, 200, 300, 400];

Hãy:

  • In ra từng giá
  • Lọc ra giá > 200
  • Nhân đôi tất cả giá

Bài 4

Dùng while để đếm ngược từ 10 → 0.

9. Kết luận bài học

  • Vòng lặp giúp tự động hóa thao tác lặp lại
  • for – linh hoạt nhất
  • while – dùng khi không biết số lần lặp trước
  • for…of / forEach – tối ưu cho mảng
  • map/filter – xử lý dữ liệu hiệu quả, tinh gọn

🔑 GHI NHỚ QUAN TRỌNG:

  • Chọn đúng loại vòng lặp cho từng trường hợp
  • Luôn có điều kiện dừng rõ ràng
  • Ưu tiên các method như map, filter khi làm việc với mảng
  • Tránh vòng lặp vô hạn bằng cách kiểm tra biến đếm
12 bài học
Bài 5
Tiến độ hoàn thành 42%

Đã hoàn thành 5/12 bài học