초기 상태
조건식에서 읽는 변수가 반복 전에 유효한 값으로 준비됐는지 본다.
condition operand를 먼저 세팅조건 기반 반복은 몇 번 도는지가 아니라 언제 멈추는지의 문제다. 진입 전 검사, 실행 후 검사, 입력 소비, 상태 갱신 위치를 분리해 무한 루프와 off-by-one을 막는다.
조건식에서 읽는 변수가 반복 전에 유효한 값으로 준비됐는지 본다.
condition operand를 먼저 세팅while은 본문 실행 전, do-while은 본문 실행 후 조건을 확인한다.
while은 0회 실행이 가능하다조건을 거짓으로 만들 수 있는 변화가 모든 경로에서 일어나는지 확인한다.
continue 경로도 progress 필요break, return, 예외가 loop invariant를 깨지 않고 빠져나가는지 본다.
RAII 또는 scope guard로 회수int value;
while (std::cin >> value) {
// process only valid input
}