Repeat..until 반복문
Repeat..until 반복문
어떤 조건이 참이 될 때까지 같은 작업을 반복해야 하는 상황, Pascal에서 많이 만나게 돼요. repeat..until 문은 조건이 만족될 때까지 문장을 실행하는 데 쓰이는 반복문이에요. 이 반복문의 가장 큰 특징은 조건을 나중에 검사하기 때문에 본문이 적어도 한 번은 실행된다는 점이에요.
본문
repeat..until 문의 원형 문법은 대략 이렇게 생겼어요.
repeat
문장들
until 표현식
repeat와 until 사이에 있는 문장들이 Expression이 True로 평가되는 순간까지 실행돼요. Expression은 문장들이 실행된 이후에 평가되기 때문에, 본문의 문장들은 조건과 무관하게 최소한 한 번은 실행돼요.
한 가지 알아둘 점이 있어요. boolean 표현식 Expression은 기본적으로 short-cut 평가(단락 평가)돼요. 무슨 뜻이냐 하면, 결과가 확실하게 드러나는 지점에서 평가가 멈춘다는 뜻이에요. 뒤의 나머지 표현식을 굳이 계산하지 않아도 결과를 알 수 있을 때 거기서 평가를 끝내버려요.
다음은 유효한 repeat 문의 예시예요.
repeat
WriteLn ('I =',i);
I := I+2;
until I>100;
repeat
X := X/2
until x<10e-3;
until 키워드 바로 앞에 오는 마지막 문장은 끝맺음 세미콜론이 꼭 필요하지 않아요. 다만 붙여도 전혀 문제없어요.
Break와 Continue 시스템 루틴을 쓰면 repeat..until 문의 끝, 또는 끝 바로 다음 지점으로 점프할 수 있어요. 여기서 주의할 점은 Break와 Continue가 예약어(reserved word)가 아니라는 거예요. 그래서 오버로드할 수 있어요.
더 알아보기
- 반복문을 배우다 보면
while..do문(13.2.7)과 자주 비교하게 돼요.repeat..until은 최소 한 번 실행되고,while..do는 최대 0번까지도 실행될 수 있는 차이가 있어요. - 반복 제어에 쓰이는
Break,Continue루틴의 쓰임새도 같이 살펴보면 좋아요.