For 루프로 반복하기
Coddy C++ 여정의 로직과 흐름 섹션에 포함된 레슨 — 56개 중 14번째.
이제 개별 요소에 접근하고 벡터의 크기를 확인하는 방법을 알았으니, 전통적인 for 루프를 사용하여 모든 요소를 체계적으로 처리하는 방법을 배워보겠습니다. 이 방식은 .size() 메서드와 인덱스 기반 접근을 결합하여 각 요소를 순서대로 방문합니다.
전통적인 for 루프는 0에서 시작하여 벡터의 크기에 도달할 때까지 증가하는 인덱스 변수를 사용합니다:
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.size(); i++) {
std::cout << names[i] << std::endl;
}이 예제에서 루프 조건 i < names.size()는 벡터의 범위를 벗어나지 않도록 보장하며, names[i]는 현재 인덱스를 사용하여 각 요소에 접근합니다. 루프는 각 이름을 별도의 줄에 출력합니다.
이 패턴은 데이터 컬렉션을 처리하는 데 필수적입니다. 인덱스 변수 i를 사용하면 작업 중인 요소를 정밀하게 제어할 수 있어, 각 요소의 위치를 알아야 하거나 반복 중에 요소를 수정하려는 경우에 유용합니다.
루프가 종료된 후, i는 names.size() — 이 경우에는 3 — 와 같다는 점에 유의하세요. 이는 i < names.size() 조건이 거짓(false)이 되는 즉시 루프가 중단되기 때문입니다.
챌린지
쉬움전통적인 for 루프를 사용하여 제품 이름이 담긴 벡터를 순회하고, 이를 번호가 매겨진 리스트 형식으로 표시하는 프로그램을 작성하세요.
다음과 같은 입력이 제공됩니다:
- 제품의 개수를 나타내는 정수
n - 그 다음 제품 이름을 나타내는
n개의 문자열
프로그램은 다음을 수행해야 합니다:
products라는 이름의std::vector<std::string>를 생성합니다.push_back()을 사용하여n개의 각 제품 이름을 벡터에 추가합니다.- 인덱스 변수를 사용하는 전통적인 for 루프를 사용하여 벡터를 순회합니다.
- 루프에서 루프 조건으로
.size()메서드를 사용합니다. - 대괄호
[]연산자를 사용하여 인덱스로 각 요소에 접근합니다. - 각 제품을 지정된 형식에 맞춰 위치 번호(1부터 시작)와 함께 출력합니다.
다음과 같은 정확한 출력 형식을 사용하세요:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...for 루프는 인덱스 0부터 시작해야 하며, 조건으로 i < products.size()를 사용하고, 매 반복마다 i를 증가시켜야 합니다. 출력할 때는 인덱스에 1을 더하여 1부터 시작하는 위치 번호를 표시하세요.
직접 해보기
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// 제품의 수를 읽습니다
int n;
cin >> n;
// 제품 이름을 저장할 벡터를 생성합니다
vector<string> products;
// 제품 이름을 읽고 벡터에 추가합니다
for (int i = 0; i < n; i++) {
string product;
cin >> product;
products.push_back(product);
}
// TODO: 아래에 코드를 작성하세요
// 전통적인 for 루프를 사용하여 벡터를 순회하고
// 각 제품을 위치 번호와 함께 출력합니다
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.