Menu
CoddyTech

Duyệt bằng vòng lặp for

Thuộc phần Logic và luồng chương trình trong hành trình C++ của Coddy. Bài học 14 trên 56.

Giờ bạn đã biết cách truy cập từng phần tử và kiểm tra kích thước của một vector, hãy cùng tìm hiểu cách xử lý lần lượt mọi phần tử bằng vòng lặp for truyền thống (traditional for loop). Cách này kết hợp phương thức (method) .size() với cách truy cập dựa trên chỉ số để duyệt từng phần tử theo thứ tự.

Vòng lặp for truyền thống dùng một biến chỉ số bắt đầu từ 0 và tăng dần cho đến khi đạt đến kích thước của vector:

std::vector<std::string> names = {"Alice", "Bob", "Charlie"};

for (int i = 0; i < names.size(); i++) {
    std::cout << names[i] << std::endl;
}

Trong ví dụ này, điều kiện vòng lặp i < names.size() đảm bảo chúng ta không vượt quá giới hạn của vector, còn names[i] truy cập từng phần tử bằng chỉ số hiện tại. Vòng lặp sẽ in từng tên trên một dòng riêng.

Mẫu này rất quan trọng khi xử lý các tập dữ liệu. Biến chỉ số i giúp bạn kiểm soát chính xác phần tử đang thao tác, rất hữu ích khi bạn cần biết vị trí của từng phần tử hoặc muốn sửa đổi các phần tử trong quá trình lặp.

Lưu ý rằng sau khi vòng lặp kết thúc, i bằng names.size(), trong trường hợp này là 3, vì vòng lặp dừng ngay khi điều kiện i < names.size() trở thành sai.

challenge icon

Thử thách

Dễ

Tạo một chương trình dùng vòng lặp for truyền thống để duyệt qua một vector tên sản phẩm và hiển thị chúng dưới dạng danh sách được đánh số.

Chương trình sẽ nhận các đầu vào sau:

  • Một số nguyên n biểu thị số lượng sản phẩm
  • Sau đó là n chuỗi tên sản phẩm

Chương trình của bạn cần:

  1. Tạo một std::vector<std::string> có tên products
  2. Dùng push_back() để thêm từng tên trong số n sản phẩm vào vector
  3. Dùng vòng lặp for truyền thống với một biến chỉ số để duyệt qua vector
  4. Trong vòng lặp, dùng phương thức .size() làm điều kiện của vòng lặp
  5. Dùng toán tử ngoặc vuông [] để truy cập từng phần tử theo chỉ số
  6. In từng sản phẩm cùng số thứ tự của sản phẩm đó, bắt đầu từ 1, theo định dạng đã chỉ định

Dùng chính xác định dạng đầu ra sau:

Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...

Vòng lặp for cần bắt đầu với chỉ số 0, dùng i < products.size() làm điều kiện và tăng i sau mỗi lần lặp. Khi in, hãy cộng 1 vào chỉ số để hiển thị số thứ tự bắt đầu từ 1.

Tự làm thử

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    // Đọc số lượng sản phẩm
    int n;
    cin >> n;
    
    // Tạo một vector để lưu tên sản phẩm
    vector<string> products;
    
    // Đọc tên sản phẩm và thêm vào vector
    for (int i = 0; i < n; i++) {
        string product;
        cin >> product;
        products.push_back(product);
    }
    
    // TODO: Viết code của bạn bên dưới
    // Dùng vòng lặp for truyền thống để duyệt vector
    // và in ra từng sản phẩm kèm số thứ tự của sản phẩm đó
    
    return 0;
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch C++ online