while

while 조건 점검

while은 조건이 참인 동안 반복하고 do-while은 본문을 한 번 실행한 뒤 검사한다. 초기 상태와 종료 갱신이 분리되면 무한 루프가 생긴다.

01

진입 조건을 읽는다

빈 입력에서도 본문이 실행되어야 하는지에 따라 while과 do-while을 나눈다.

02

진행 변수 갱신

index, iterator, 입력 스트림 상태가 반복마다 바뀌지 않으면 루프가 닫히지 않는다.

03

탈출 경로 표시

break가 여러 개라면 각 경로가 어떤 조건을 의미하는지 이름 있는 함수로 분리할 수 있다.

empty input
0회 실행 가능 while은 처음 조건이 거짓이면 본문을 건너뛴다.
초기 결과값을 준비한다.
one pass
1회 실행 보장 do-while은 메뉴 입력처럼 최소 한 번 표시해야 할 때 맞다.
조건 검사가 뒤에 있다.
iterator
증가 위치 continue 전에 iterator 증가가 빠지면 같은 원소를 반복한다.
erase 루프는 반환 iterator를 쓴다.
stream
읽기 성공 기준 while (in >> value)처럼 읽기 자체를 조건으로 두면 실패 상태를 자연스럽게 처리한다.
eof만 조건으로 두지 않는다.

빈 입력 · 갱신 · 조건 위치 점검

빈 입력 처음부터 처리할 값이 없을 때 결과가 올바른가.
갱신 모든 continue 경로에서도 종료 조건에 가까워지는가.
조건 위치 본문을 반드시 한 번 실행해야 하는 요구가 실제로 있는가.

스트림 루프

int value = 0;
while (input >> value) {
    total += value;
}