3.2 반복문
지금까지는 for문으로 어떤 도메인을 반복했다. 첫 번째 예제에서는 변수 i를 선언한 뒤, 한 번씩 반복할 때마다 그 값을 0, 1, 2, 3, 4로 설정했다. 이 문장의 기본 형태는 다음과 같다.
for (절1; 조건2; 표현식3) 문장_or_블록
굉장히 범용적인 문장이다. 흔히 절1 자리에 대입(assignment) 표현식이나 변수 정의를 적는다. 즉, 반복 도메인의 초깃값을 지정하는 역할을 한다. 조건2는 반복을 계속할지 검사한다. 그 뒤에 나오는 표현식3은 절1에 나왔던 반복 변수의 값을 업데이트하는데, 반복이 끝날 때마다 실행된다. 여기에 대해 몇 가지 조언을 하면 다음과 같다.
• 반복 변수(iteration variable)는 for 루프의 문맥에 종속되도록 정의해야 하므로(TAKEAWAY 2.11 참고), 대부분 절1 자리에 변수 정의를 적는다.
• for는 네 가지 요소로 구성되어 다소 복잡하고 시각적으로 표현하기 쉽지 않으므로 문장_or_블록을 블록({...})으로 표현할 때가 많다.
다른 예제도 살펴보자.
for (size_t i = 10; i; --i) { something(i); } for (size_t i = 0; stop = upper_bound(); i < stop; ++i) { something_else(i); } for (size_t i = 9; i <= 9; --i) { something_else(i); }