The following SAS program is submitted:
data work.sets;
do until (prod gt 6);
prod + 1;
end;
run;
What is the value of the variable PROD in the output data set?
A. 6
B. 7
C. 8
D. (missing numeric)
정답은 B입니다.
이 문제를 풀기 위해선 do-until문의 특성을 알아야 합니다.
do-until문은 조건문보다 반복문을 먼저 수행을 합니다.
여기서 조건은 prod gt 6(prod가 6보다 크면)이며, 이 조건보다 먼저 선행해서 prod+1을 수행하는 거죠.
따라서, prod 값이 7이 된 이후 조건문과 비교를 하고, 반복문 수행이 종료되니 답은 7 즉, B번입니다.
반면, do-while문은 조건문부터 살핍니다. 조건문이 만족되면 반복문이 실행되는 것이죠.
do while(prod gt 6)이면 조건문이 만족되지 않으므로 반복문이 수행되지 않습니다.
즉, 0으로 출력이 됩니다.
이 두 반복문의 차이점 기억해두시길 바랍니다.