BookmarkSubscribeRSS Feed

[5.3.2] Iterative Processing

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

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 두 번째 시간으로 조건적 반복문 작성에 대해 알아보았습니다.

 

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

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

Article Labels
Article Tags