。공부 。

[JESS] Jess 반복문 (foreach, for, while)

kyoe 2008. 7. 8. 16:43
C나 자바에서와 같이 제스 에서는 반복문이 존재 한다.
foreach나 for문 while와 같은 함수가 말이죠.

1. foreach 함수는 일반리스트의 원소를 차례차례 한개씩 받아오는 함수이다.
(bind ?com-list (create$ 모니터 본체 스피커))
(bind ?num 0)
(foreach ?data-list ?com-list
    (printout t (++ ?num)" : " ?data-list crlf)
    )
foreach 함수는 위와 같이 쓰인다.
첫번째줄에서 일반리스트를 선언해준뒤 두번째줄에서 카운터변수 ?num을 0으로 초기화 시켜주고 있다.
foreach 함수의  첫번째 변수인 ?data-list는 ?com-list의 원소값 한개를 받아와 저장하게 된다.
com-list의 원소가 nil이 아닐 동안 원소를 한개씩 받아오게 되는것이다.

[실행 결과 ]
1 : 모니터
2 : 본체
3 : 스피커

2. for 함수
(for (bind ?i 0) (<= ?i 9) (++ ?i)
    (printout t"3 *" ?i " = " (* 3 ?i) crlf)
    )
for문의 형식은 씨언어나 자바와 비슷하다 다만 제스는
선형표기법을 쓴다 라는것을 빼면 말이죠
위의 소스는 간단하게 구구단 3단을 출력하는 소스입니다.

3. while 함수
(bind ?num 1)
(while (<= ?num 9) do
    (printout t "2 * " ?num " = "(* 2 ?num) crlf)
    (++ ?num)
    )
역시 형식은 자바와 비슷하죠?
while의 조건이 만족하는 동안 do 아래의 문장을 실행하게 됩니다.
[실행결과]
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18