더북(TheBook)

while 문이 쓰인 부분은 영어처럼 읽을 수 있을 것이다. n0보다 크면 n의 값을 표시하고 n을 감소하라. n0이 되면 Blastoff! 단어를 표시하라는 뜻이다.

while 문의 실행 흐름을 정형화하면 다음과 같을 것이다.

1. 조건이 참 또는 거짓인지 판별하라.

2. 거짓이면 while 문을 빠져나가고 다음 문장으로 실행을 계속하라.

3. 조건이 참이면 바디를 실행하고 1로 돌아가라.

3단계에서 처음으로 되돌아가기 때문에 이런 종류의 흐름을 루프(loop)라고 부른다.

루프의 바디는 하나 이상의 변수에 대해 값을 바꿀 수 있으므로 조건은 마침내 거짓이 되고 루프를 중단한다. 그렇지 않으면 루프는 영원히 반복하게 되는데, 이런 종류의 루프를 무한 루프(infinite loop)라고 한다. 컴퓨터 과학자를 위한 끝없는 기쁨의 원천은 샴푸 사용법에 쓰인 거품, 헹굼, 반복이 무한 루프라는 사실이다.*

 


 

* 역주 미국에서 상당수의 샴푸가 제품 사용법에 거품, 헹굼, 반복(Lather, rinse, repeat)이라고 표기했었다. 그래서 소비자들의 입방에 오른 적이 있다. 이 제품 사용법에 따르면 샴푸가 떨어질 때까지 샴푸를 전부 사용해야 한다. 컴퓨터 과학 분야에서는 루프 설명할 때 종종 ‘샴푸 알고리즘이라는 이름으로 소개된다. https://en.wikipedia.org/wiki/Lather,_rinse,_repeat

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