SAS Base, A00-211 Crambible 덤프

SAS 크램바이블, SAS 베이스 자격증 문제풀이   


QUESTION NO: 8


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)




DO UNTIL (조건문) 

 - 조건문과 상관없이 반복문을 먼저 실행합니다. 

즉, prod gt 6 (prod 값이 6보다 큽니까) 을 살펴보는게 아니라 곧바로 prod+1부터 시작하게 됩니다. 이때 prod 값을 미리 설정하지 않았기에 초기값이 0이므로 0부터 시작하게 되겠죠. 


1이 6보다 큽니까란 조건이 만족되지 않았기때문에 반복하게 됩니다. 그래서 반복하다가 prod가 7이된 상태에서 조건문인 7이 6보다 큽니까? 란 조건이 만족하게 되므로 end로 반복구문이 끝나게 됩니다. 따라서 prod값은 7이 됩니다. 




반면 같이 알아둬야할 DO WHILE (조건문)!! 

예를들어 질문이 do until이 아니라 do while이 되었다면... 


얘는 조건문부터 살피게 됩니다. 이 조건문부터 만족이 되면 그 다음 반복문이 실행이 됩니다. 

우선 prod값이 지정되지 않았으므로 초기값이 0이되는데요. 

그러면 조건문 (0 > 6) 이 만족되지 않겠죠. 그래서 반복문이 되지 않고 바로 빠져나오게 됩니다. 

그래서 값은 0이 되는거죠. 참고하세요.


Answer: B 


반응형

+ Recent posts