Vòng lặp trong C++ là gì? 3 loại vòng lặp phổ biến trong C++

126
Bạn đam mê lập trình và mới bắt đầu tìm hiểu về lập trình C++? Bạn đã bao giờ nghe thuật ngữ này chưa loop? Loop hay Vòng lặp là một trong những khái niệm quan trọng bạn cần nắm khi học C++. Cùng TopDev theo dõi hết bài viết dưới đây để nắm được tất tần tật kiến thức về vòng lặp trong C++.

Vòng lặp trong C++ là gì?

Loop là một khối mã tự thực thi cho đến khi điều kiện đã chỉ định trở thành sai. Trong phần này, chúng ta sẽ xem xét chi tiết các loại vòng lặp được sử dụng trong lập trình C++.

Sự cần thiết của câu lệnh lặp trong C++

Chúng ta có thể đưa ra một số cách sử dụng trong C++

  • Loops cho phép người dùng thực thi lặp đi lặp lại cùng một bộ câu lệnh mà không cần viết cùng một mã nhiều lần.
  • Nó tiết kiệm thời gian và công sức và tăng hiệu quả.
  • Nó làm giảm nguy cơ mắc lỗi trong quá trình biên dịch.
  • Loops làm cho mã dễ đọc và dễ hiểu hơn, đặc biệt khi xử lý logic phức tạp hoặc tập dữ liệu lớn.
  • Nó thúc đẩy khả năng sử dụng lại và phát triển tiếp đoạn code khi muốn mở rộng chương trình.
  • Loop giúp duyệt qua các cấu trúc dữ liệu như mảng hoặc danh sách liên kết.

Các loại vòng lặp trong C++

Có ba loại được sử dụng trong lập trình C++:

  1. for
  2. while
  3. do while

1. Vòng lặp for trong C++

Vòng lặp for là một cấu trúc điều khiển trong C++ cho phép lặp lại một đoạn mã một số lần nhất định.

vòng lặp for trong C++
Vòng lặp for trong C++
for(initialization; testcondition; updateExpression)
{ 
//code to be executed 
} 

Thành Phần Của Vòng Lặp for:

  1. Initialization (Khởi tạo): Được thực thi một lần duy nhất khi vòng lặp bắt đầu. Thường là khai báo và khởi tạo biến lặp.
  2. Condition (Điều kiện): Được kiểm tra trước mỗi lần lặp. Nếu điều kiện đúng, khối lệnh bên trong vòng lặp sẽ được thực thi. Nếu điều kiện sai, vòng lặp kết thúc.
  3. Increment (Tăng/giảm): Được thực thi sau mỗi lần lặp. Thường dùng để cập nhật biến lặp.

Dưới đây là ví dụ về vòng lặp for in ra các số từ 1 đến 10:

#include <iostream>
using namespace std;

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

Trong ví dụ này:

    • Initialization: int i = 1 khởi tạo biến i với giá trị 1.
    • Condition: i <= 10 kiểm tra xem i có nhỏ hơn hoặc bằng 10 không.
    • Increment: ++i tăng giá trị của i lên 1 sau mỗi lần lặp.

Output:

1
2
3
4
5
6
7
8
9
10

2. Vòng lặp while trong C++

Vòng lặp while trong C++ là một cấu trúc lặp cho phép thực thi một khối mã lệnh liên tục khi điều kiện kiểm tra là đúng.

Vòng lặp while trong C++
Vòng lặp while trong C++

Cú pháp cơ bản của vòng lặp while như sau:

while (condition) {
    // Code to be executed
}

Không giống như vòng lặp for, vòng lặp while chỉ chứa một thành phần bên trong dấu ngoặc sau while: một điều kiện đánh giá là đúng hay sai và xác định xem vòng lặp có chạy hay không. Giả sử chúng ta muốn điều kiện tương tự như vòng lặp for ở trên, nghĩa là vòng lặp phải từ 5 trở xuống để vòng lặp chạy. Trong trường hợp này, chúng ta sẽ viết điều kiện này là while (i < 5).

Mặc dù các câu lệnh khởi tạo và tăng/giảm bị thiếu trong dấu ngoặc đơn, nhưng chúng vẫn cần thiết trong vòng lặp while cũng như trong vòng lặp for. Chúng ta phải khởi tạo biến tăng i trước khi vòng lặp while bắt đầu và việc tăng/giảm sẽ xảy ra trong khối mã của vòng lặp

Ví dụ minh họa:

#include <iostream>
using namespace std;

int main() {
    int i = 0;
    
    // Vòng lặp while
    while (i < 5) {
        cout << "i = " << i << endl;
        i++; // Cập nhật điều kiện
    }
    
    return 0;
}

Trong ví dụ này, vòng lặp while sẽ in giá trị của i từ 0 đến 4. Biến i được khởi tạo với giá trị 0 và tăng dần mỗi lần lặp.

Output:

1
2
3
4

3. Vòng lặp do-while trong C++

Vòng lặp do-while trong C++ là một cấu trúc lặp cho phép thực hiện một khối mã lệnh ít nhất một lần và sau đó tiếp tục thực hiện khối lệnh đó khi điều kiện kiểm tra là đúng. Vòng lặp này rất giống với vòng lặp while nhưng có một điểm khác biệt chính: Điều kiện được đánh giá sau khối câu lệnh, không phải trước khối câu lệnh.

Vòng lặp do-while trong C++
Vòng lặp do-while trong C++ 

Cú pháp cơ bản của vòng lặp do-while như sau:

do {
    // Code to be executed
} while (condition);

Chi Tiết:

  1. Khởi Tạo và Thực Thi: Khối mã lệnh trong vòng lặp do-while sẽ được thực hiện ít nhất một lần, ngay cả khi điều kiện kiểm tra ban đầu là sai.
  2. Kiểm Tra Điều Kiện: Sau khi thực thi khối lệnh, điều kiện được kiểm tra. Nếu điều kiện là đúng, vòng lặp sẽ lặp lại. Nếu điều kiện là sai, vòng lặp sẽ kết thúc.

Ví Dụ:

#include <iostream>
using namespace std;

int main() {
    int i = 0;

    // Vòng lặp do-while
    do {
        cout << "i = " << i << endl;
        i++; // Cập nhật biến điều kiện
    } while (i < 5);

    return 0;
}

Trong ví dụ này, vòng lặp do-while sẽ in giá trị của i từ 0 đến 4. Biến i được khởi tạo với giá trị 0 và tăng dần mỗi lần lặp. Vòng lặp sẽ dừng khi điều kiện i < 5 trở nên sai (false).

Output:

1
2
3
4

Khi nào nên sử dụng vòng lặp trong C++

Trong các ví dụ trên, chúng tôi đã in ra số đếm trên mỗi lần lặp của vòng lặp. Các trường hợp sử dụng khác của vòng lặp bao gồm việc thêm một số vào biến tổng ngày càng tăng sau mỗi lần lặp hoặc theo nghĩa rộng hơn, thay đổi bất kỳ biến nào khác theo một cách nào đó.

  1. Vòng lặp for:
    • Khi biết trước số lần lặp.
    • Duyệt qua mảng hoặc danh sách.
  2. Vòng lặp while:
    • Khi số lần lặp không xác định trước.
    • Điều kiện kiểm tra trước khi thực hiện.
  3. Vòng lặp do-while:
    • Khi muốn thực hiện ít nhất một lần trước khi kiểm tra điều kiện.

Vòng lặp lồng nhau và vô hạn trong C++

Cuối cùng, chúng ta hãy xem xét một số trường hợp sử dụng nâng cao của vòng lặp trong C++. Bạn có thể đã thấy các tài liệu tham khảo về vòng lặp lồng nhau và tự hỏi chúng là gì.

Các vòng lặp lồng nhau là các vòng lặp bên trong các vòng lặp; chúng không chỉ có thể mà còn khá phổ biến.

Đây là cách một vòng lặp lồng nhau có thể trông như thế nào:

#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 3; i++) {  // Vòng lặp ngoài
        for (int j = 0; j < 3; j++) {  // Vòng lặp trong
            cout << "i = " << i << ", j = " << j << endl;
        }
    }
    return 0;
}

Mặc dù việc sử dụng các vòng lặp lồng nhau có vẻ thuận tiện nhưng tốt nhất nên tránh sử dụng nếu có thể. Nếu có một chức năng trong thư viện tiêu chuẩn thực hiện những gì bạn cần thì nên dùng và tránh dùng vòng lặp lồng nhau vì cú pháp phức tạp của nó có thể khiến bạn có sai sót trong quá trình viết code.

Vòng lặp vô hạn là vòng lặp không bao giờ kết thúc nếu không có điều kiện dừng thích hợp. Vòng lặp này thường được sử dụng trong các chương trình cần chờ sự kiện hoặc điều kiện từ bên ngoài.

Ví dụ:

#include <iostream>
using namespace std;

int main() {
    while (true) {
        // Thực hiện công việc lặp lại
        cout << "This is an infinite loop. Press Ctrl+C to stop." << endl;
    }
    return 0;
}

Vòng lặp trên sẽ lặp lại mãi mãi vì điều kiện true luôn luôn đúng. Để dừng vòng lặp này, bạn có thể sử dụng tổ hợp phím Ctrl+C trên hầu hết các hệ thống để kết thúc chương trình.

TopDev tin rằng bài viết này đã mang lại cho bạn kiến thức tổng quan về cách các nhà phát triển C++ sử dụng vòng lặp và các kiểu vòng lặp phổ biến trong C++. Xem việc làm C++ mới nhất tại đây.

Tài liệu tham khảo:

  • https://www.udacity.com/blog/2021/02/c-loops-what-you-need-to-know.html
  • https://www.scholarhat.com/tutorial/cpp/loops-in-cpp-programming