더북(TheBook)

C++에 있는 for 문은 매우 유연하다. 초기화 부분은 임의의 표현식, 또는 변수를 선언하거나 빈 상태로 둘 수 있다. 같은 타입의 변수를 여러 번 선언할 수도 있다. 이는 반복 조건에 같은 동작을 반복하는 것을 피하기 위함이다. 예를 들어 다음과 같이 말이다.

for (int i = xyz.begin(), end = xyz.end(); i < end; ++i) ...

초기화 부분에 선언된 변수들은 반복문 안에서만 보이며 반복문을 빠져나오면 사라진다.

반복 조건은 bool 타입으로 변환할 수 있는 임의의 표현식이 될 수 있다. 반복 조건을 비워두면 항상 true가 되어 무한 반복문이 된다. 물론 무한 반복문이 되더라도 반복문 안에서 멈출 수 있으며, 멈추는 방법은 다음 절에서 설명한다. 반복문의 인덱스는 일반적으로 for 문의 세 번째 하위 표현식에서 증가시킨다고 이미 언급했었다. 원칙적으로, 반복문 안에서 수정할 수도 있다. 그러나 반복문의 시작 부분에서 인덱스를 증가시키는 게 좀 더 깔끔한 프로그램을 만드는 길이다. 한편, 오직 하나의 변수만 1씩 증가시켜야 한다는 제한은 없다. 콤마 연산자(1.3.5절 참조)를 사용해 다음과 같이 원하는 만큼 변수를 선언할 수 있고, 원하는 대로 값을 수정할 수 있다.

for (int i = 0, j = 0, p = 1; ...; ++i, j += 4, p *= 2) ...

물론 위 예제는 인덱스가 하나인 경우보다 더 복잡하지만, 반복문 시작 전이나 반복문 안에서 인덱스들을 선언/수정하는 것보다는 가독성이 높다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.