← Danh sách bài học
🔁

Vòng lặp

Vòng lặp giúp lặp lại công việc nhiều lần: xử lý mảng, đếm, tổng, tìm kiếm. C++ có 3 loại: for, while, do-while.

1. for

Dùng khi biết trước số lần lặp. Có 3 phần: khởi tạo; điều kiện; bước.

for (int i = 1; i <= 10; i++) cout << i << " ";

2. while

Dùng khi số lần lặp không biết trước, kiểm tra điều kiện ĐẦU.

int n = 100;
while (n > 1) { n /= 2; cout << n << " "; }

3. do-while

Kiểm tra điều kiện SAU — thân lặp chạy ít nhất 1 lần. Thường dùng cho menu nhập lại.

int chon;
do {
    cout << "1.Choi 2.Thoat: "; cin >> chon;
} while (chon != 2);

4. break và continue

break: thoát vòng lặp gần nhất. continue: bỏ qua phần còn lại của lượt hiện tại, sang lượt tiếp theo.

5. Range-based for (C++11)

Duyệt collection ngắn gọn:

vector<int> v = {1,2,3};
for (int x : v) cout << x << " ";
for (auto& x : v) x *= 2;  // & để sửa được

💻 Code mẫu thực chiến

Bảng cửu chương

In bảng cửu chương của số n.

int n; cin >> n;
for (int i = 1; i <= 10; i++)
    cout << n << " x " << i << " = " << n*i << endl;

Đếm số ngày làm việc

Trong N ngày, đếm số ngày không phải Chủ nhật (cứ 7 ngày có 1 CN).

int N; cin >> N;
int lam = 0;
for (int i = 1; i <= N; i++)
    if (i % 7 != 0) lam++;
cout << lam;

Tính lãi kép ngân hàng

Gửi P đồng lãi r%/năm, hỏi sau n năm còn bao nhiêu.

double P, r; int n;
cin >> P >> r >> n;
for (int i = 0; i < n; i++) P *= (1 + r/100);
cout << (long long)P;

💡 Mẹo & lưu ý

  • Tránh sửa biến đếm bên trong for — dễ gây lặp vô hạn.
  • Dùng size_t hoặc int có dấu khi so sánh với v.size() để tránh cảnh báo.
  • Vòng lặp lồng nhau: độ phức tạp nhân lên (O(n²), O(n³)…). Cẩn thận với n lớn.