BookmarkSubscribeRSS Feed

[5.3.2] Iterative Processing

Started ‎06-16-2020 by
Modified ‎06-16-2020 by
Views 228

5.3.2 Iterative Processing

 

안녕하세요^^

오늘은 macro에서의 Iterative Processing 두번째 시간입니다.

 

Iterative Processing 두번째 시간에는 매크로 문의 조건적 실행하는 방법에 대해 알아보고, 코드를 작성하는 방법에 대해 알아보겠습니다.

 

 

%DO 반복문을 조건적으로 사용하는 방법으로는 %DO %WHILE, %DO %UNTIL문이 있습니다.

 

먼저, %DO %WHILE 문은 일반적으로 아래와 같이 작성합니다

 

 

SE22016101801475670.jpg

 

이 문장의 경우 반복문을 실행하기 전에 가장 위에서 expression을 평가하고, Expression이 참인동안 반복문을 실행합니다.

 

다음으로, %DO %UNTIL 문은 일반적으로 아래와 같이 작성합니다.

 

SE22016101801481670.jpg

 

이 문장의 경우, 반복문을 실행한 후에 가장 밑에서 expression을 평가하고, expression이 참일때까지 반복문을 실행합니다.

따라서, 반복문은 적어도 한번은 반드시 실행됩니다.

======================================================================

 

예제를 통해 코드를 작성하는 방법을 살펴보도록 하겠습니다.

​먼저. %DO %WHILE을 작성해보도록 하겠습니다.

 

SE22016101801490770.jpg

  

SE22016101801491370.jpg

 

위에 작성한 코드를 살펴보면,

먼저 i=1이라고 매크로 변수를 지정합니다.

 

%DO %WHILE문은 조건문을 문장의 가장 처음에 평가하기 때문에, &i가 3보다 작은 상태인 동안, 아래의 문장을 반복적으로 실행하게 됩니다.

 

%eval 문장에서 &i에 1씩 더하는 문장을 작성합니다.

또한 let문으로 onechar이라는 매크로 변수를 만들며, 문자를 추출하는 함수 substr를 사용하여 abcdefghij 중 &i번째 문자를 1글자 추출합니다.

 

즉, 이 경우, i=1일 때 %WHILE 뒤에 나오는 조건을 만족하므로, i에 1을 더해서 i=2가 되고onechar=b가 됩니다.

 

다시 반복문 위로 올라와서 i=2일 때, 여전히 %WHILE 뒤에 나오는 조건을 만족하므로, i=3, onechar=c가 됩니다.

 

마찬가지로 다시 반복문 위로 올라와서,

i=3일 때 %WHILE 뒤에 나오는 조건을 만족하지 못하므로, 반복문이 끝나고 시작되는 %put 문장을 실행합니다.

 

따라서, i=3,  onechar=c를 출력합니다.  

 

 

======================================================================

 

다음으로. %DO %UNTIL을 작성해보도록 하겠습니다

 

SE22016101801515170.jpg

 

SE22016101801515770.jpg

 

위에 작성한 코드를 살펴보면,

먼저 i=1이라고 매크로 변수를 지정합니다.

 

%DO %UNTIL문은 조건문을 문장의 가장 마지막에 평가하기 때문에, &onechar가 e이거나 &i가 10인 상태가 될때까지, 아래의 문장을 반복적으로 실행하게 됩니다.

 

%eval 문장에서 &i에 1씩 더하는 문장을 작성합니다.

또한 let문으로 onechar이라는 매크로 변수를 만들며, 문자를 추출하는 함수 substr를 사용하여 abcdefghij 중 &i번째 문자를 1글자 추출합니다.

 

즉, 이 경우, i=1일 때 반복문을 실행합니다.

i에 1을 더해서 i=2가 되고, onechar=b가 됩니다.

 

%UNTIL 뒤에 나오는 조건은 아직 만족하지 못하므로, i에 1을 더해서 i=3이 되고onechar=c가 됩니다.

 

여전히 %UNTIL 뒤에 나오는 조건은 아직 만족하지 못하므로, 다시 반복문을 실행하여 i=4, onechar=d가 됩니다.

 

하지만, 여전히 %UNTIL 뒤에 나오는 조건은 아직 만족하지 못하므로, 다시 반복문을 실행하여 i=5, onechar=e가 됩니다.

 

반복문 아래에서 조건을 만족하는 상황이 되어, %put 문장을 실행합니다.

 

따라서, i=5,  onechar=e를 출력합니다.

 

 

 

이상으로 Iterative Processing 두 번째 시간으로 조건적 반복문 작성에 대해 알아보았습니다.

 

Contributors
Version history
Last update:
‎06-16-2020 10:12 PM
Updated by:

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand in the Innovate Hub.

Watch Now →
Article Labels
Article Tags