[Logically Controlled Loops]
: 루프의 내용이 종료 조건을 테스트 하는 방법.
: 각 반복문 시작전에 조건을 테스트 하는 방식이 가장 일반적 ( = while 문)
# Algol-W에서의 반복문
while condition do statement |
[Post-test Loops]
: 반복문을 실행한뒤에 종료 조건을 확인하는 방식 ( = do while 문)
: 두방식의 차이는 루프문의 내용이 길어질수록 중요해진다.
# 일반적인 post-test loop 작성 예시
repeat readln(line) until line[1] = '$'; |
# C에서의 post-test loop문
do { line = read_line(stdin); } while (line[0] != $'); |
[Mid-test Loops]
: 루프문의 중간에서 "종료 조건문"을 테스트해보는 방법 ( = break, exit문)
: 이방법밖에 사용할 수 없는 언어들도 있다.
# C에서의 mid-test loop문(break)
while (True){ line = read_line(stdin); if (all_blanks(line)) break; consume_line(line); } |
# Ada에서의 mid-test loop문(exit)
outer: loop get_line(line, lenght); for i in 1..length loop exit outer when line(i) = "$"; consume_char(line(i)); end loop; end loop outer; |
# Java에서의 mid-test loop문
: C/C++의 break문의 확장 형태. (loop문에 label 붙일수 있다)
outer: // 라벨 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (j == 2) break outer; System.out.println("" + i + "," + j); } } |
'[프로그래밍 언어론]' 카테고리의 다른 글
프로그래밍 언어론 6-7강. 불확정성(Nondeterminacy) (0) | 2019.12.02 |
---|---|
프로그래밍 언어론 6-6강. 재귀(Recursion) (0) | 2019.12.02 |
프로그래밍 언어론 6-5-3강. 반복자(Iterators) (0) | 2019.12.01 |
프로그래밍 언어론 6-5-2강. 조합된 루프문(Combination Loops) (0) | 2019.11.29 |
프로그래밍 언어론 6-5-1강. Enumeration-Controlled Loops (0) | 2019.11.29 |