반복은 같은 처리를 횟수나 범위에 대해 적용한다. `while`은 조건이 참인 동안, `for`는 횟수가 보이는 동안, 범위 기반 for는 컨테이너의 원소마다 돈다.
세 가지 반복
for (int i = 0; i < 9; ++i) {
// i는 0부터 8
}
for (int x : scores) {
total += x;
}
for (int& x : scores) {
x += 1; // 원본을 고친다
}`++i`와 `i++`는 정수에서 결과가 같다. 반복자의 전위 증가는 불필요한 복사를 피하므로 반복문 증가식에는 `++i`를 쓴다.
빠져나오기와 무한 루프
`break`는 가장 안쪽 반복을 끝낸다. `continue`는 이번 회차의 나머지를 건너뛰고 다음 회차로 간다. 끝 조건이 변하지 않으면 루프는 끝나지 않는다. 읽을 데이터가 없을 때의 종료 조건을 먼저 적고 본문을 쓴다.
범위 기반 for 도중 그 컨테이너에 원소를 넣거나 빼면 반복이 무효가 된다. 순회 중 구조가 바뀌어야 하면 인덱스를 쓰거나, 끝날 때 한 번에 반영한다.
댓글
0개아직 댓글이 없습니다.