[Bài 4] Cấu Trúc Lặp Trong C++ – while, for

by | Apr 28, 2025 | C/C++, Ngôn ngữ lập trình | 0 comments

Sau khi đã biết rẽ nhánh với if-else, hôm nay chúng ta sẽ khám phá:

  • Cách lặp đi lặp lại công việc trong lập trình.
  • Các vòng lặp while, for trong C++.
  • Các bài tập vận dụng lặp cực kỳ thực tế!

1. Vòng lặp while

while giúp lặp lại một khối lệnh khi điều kiện còn đúng.

Cú pháp:

while (dieu_kien) {
    // Các câu lệnh thực thi
}
  • Trước mỗi lần lặp, chương trình kiểm tra điều kiện.
  • Nếu điều kiện đúng → thực hiện khối lệnh.
  • Nếu điều kiện sai → kết thúc vòng lặp.

Ví dụ 1: In ra các số từ 1 đến 5

#include <iostream>
using namespace std;

int main() {
    int i = 1;
    while (i <= 5) {
        cout << i << " ";
        i++; // Tăng i lên 1 sau mỗi lần in
    }
    return 0;
}

Kết quả:

1 2 3 4 5

2. Vòng lặp for

for được dùng khi biết số lần lặp cụ thể.

Cú pháp:

for (khoi_tao; dieu_kien; buoc_nhay) {
    // Các câu lệnh thực thi
}
  • khoi_tao: khai báo biến đếm.
  • dieu_kien: điều kiện tiếp tục vòng lặp.
  • buoc_nhay: thay đổi biến đếm mỗi lần lặp.

Ví dụ 2: In ra các số từ 1 đến 5 bằng for

#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 5; i++) {
        cout << i << " ";
    }
    return 0;
}

3. So sánh while và for

whilefor
Dùng khi chưa chắc số lần lặpDùng khi biết trước số lần lặp
Dễ dùng trong vòng lặp vô tậnGọn gàng hơn khi lặp cố định
Khởi tạo biến ngoài vòng lặpKhởi tạo biến trong for

4. Lặp ngược

Bạn có thể lặp giảm bằng cách:

for (int i = 5; i >= 1; i--) {
    cout << i << " ";
}

Kết quả:

5 4 3 2 1

5. Một số ví dụ thực tế

Ví dụ 3: Tính tổng từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n, tong = 0;
    cout << "Nhap n: ";
    cin >> n;

    for (int i = 1; i <= n; i++) {
        tong += i;
    }

    cout << "Tong tu 1 den " << n << " la: " << tong << endl;
    return 0;
}

Ví dụ 4: In các số chẵn từ 1 đến n

#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Nhap n: ";
    cin >> n;

    for (int i = 2; i <= n; i += 2) {
        cout << i << " ";
    }

    return 0;
}

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

Bài 1: Tính giai thừa của n

Gợi ý:

  • Giai thừa n! = 1 * 2 * 3 * ... * n

Bài 2: Đếm số lượng chữ số của n

Gợi ý:

  • Dùng while: mỗi lần chia n /= 10 để bỏ một chữ số.

Bài 3: Tìm tổng các số lẻ từ 1 đến n

Gợi ý:

  • Dùng for: bắt đầu từ 1, bước nhảy 2 (i += 2).

Bài 4: Kiểm tra số nguyên tố đơn giản

Gợi ý:

  • Một số nguyên tố là số lớn hơn 1, chỉ chia hết cho 1 và chính nó.
  • Duyệt từ 2 đến sqrt(n), nếu tồn tại ước số thì không phải số nguyên tố.

Tổng kết

Hôm nay bạn đã học:

  • Cách lặp với whilefor trong C++.
  • Hiểu sự khác nhau giữa whilefor.
  • Bắt đầu viết được các chương trình tính tổng, giai thừa, kiểm tra số.

👉 Buổi sau, chúng ta sẽ học:

  • Làm việc với string trong C++: nhập xuất chuỗi, xử lý chuỗi đơn giản!