WHILE — 루프 조건 검사
WHILE — 루프 조건 검사
WHILE는 BEGIN...WHILE...REPEAT 구조에서 조건을 검사해, 거짓이면 루프를 빠져나가고 참이면 루프 본문을 실행하게 하는 코어 단어예요.
본문
컴파일 (Compilation)
( C: dest -- orig dest )
새로운 미해결 순방향 참조 orig의 위치를 기존 dest 아래에 제어 흐름 스택에 놓아요. 아래 주어진 실행 시점 의미를 현재 정의에 추가해요. 그 의미는 orig가 해결될 때까지 불완전해요.
실행 (Run-time)
( x -- )
x의 모든 비트가 0이면 orig의 해결이 지정하는 위치에서 실행을 계속해요. 그렇지 않으면 (참이면) WHILE 뒤에서 실행을 계속해요.
참조 (See)
- A.6.1.2430 WHILE
합리성 (Rationale)
전형적인 사용:
: X ... BEGIN ... test WHILE ... REPEAT ... ;
테스트 (Testing)
T{ : GI5 BEGIN DUP 2 > WHILE 1- REPEAT ; -> }T
T{ 3 GI5 -> 2 }T
T{ 2 GI5 -> 2 }T
T{ 1 GI5 -> 1 }T