1. DO statement

DO statement는 여러 statement를 그룹으로 묶어 반복 수행을 위해 조건을 정의할 수 있다. DO statement는 END statement와 짝지어져야 하고, DO statement부터 END statement 안에 있는 statement들은 do-group으로 묶인다.

DO statement는 다음과 같은 4가지 유형이 있다.

  • Type 1

  • Type 2

  • Type 3

  • Type 4

Type 1

Type 1은 do-group을 정의하여 do-group안의 statement들을 수행한다. Type 1은 반복 수행을 위한 조건을 정의하지 않는다.

figure syntax do type1
Type 2와 Type 3

Type 2와 Type 3은 do-group을 정의하여 do-group 안의 statement들을 수행하며, 반복 수행을 위한 조건을 정의할 수 있다.

Type 2 :

figure syntax do type2

Type 3 :

figure syntax do type3

specification :

image

항목 설명

WHILE(expression)

do-group이 수행되기 전 표현식을 계산하여 BIT string으로 변환한다.

어떤 BIT라도 1일 경우 do-group은 수행된다. 모든 BIT가 0이거나 string이 null일 경우 do-group은 수행되지 않는다.

specification이 여러 번 반복될 경우 다음 specification이 수행된다.

UNTIL(expression)

do-group이 수행된 후 표현식을 계산하여 BIT string으로 변환한다.

모든 BIT가 0이거나 string이 null일 경우 do-group은 수행된다. 어떤 BIT라도 1일 경우 do-group은 수행되지 않는다.

specification이 여러 번 반복 될 경우 다음 specification이 수행된다.

reference

do-group을 처음 수행하기 전 expression1의 값으로 초기화 된다.

specification이 여러 번 반복될 경우 각 specification의 expression1의 값으로 초기화되고 do-group을 수행한다.

expression1

reference의 초기 값을 정의한다.

TO, BY, REPEAT가 생략될 경우 계속 expression1의 값을 가지면서 반복된다.

TO expression2

reference의 종료 값을 정의한다. 참조의 값이 expression1부터 expression2의 범위를 넘을 경우 해당 do-group은 종료된다.

TO expression2가 생략될 경우 WHILE, UNTIL 옵션에 의해 do-group이 종료되어야 한다.

BY expression

reference의 증감 값을 정의한다. do-group이 실행된 후 참조에 표현식 값만큼 더한 후 저장한다.

TO expression2가 정의되어 있고 BY expression이 생략될 경우 기본값으로 BY 1이 지정된다.

UPTHRU expression

참조의 종료 값을 정의한다. do-group이 실행된 후 참조에 1을 더한 후 저장한다.

TO 옵션과 다른 점은 TO 옵션은 do-group을 수행하기 전에 비교하지만, UPTHRU 옵션은 do-group을 수행한 후 비교한다. 따라서 UPTHRU 옵션은 do-group을 최소 한 번 이상 수행한다.

DOWNTHRU expression

참조의 종료 값을 정의한다. do-group이 실행된 후 참조에 1을 뺀 후 저장한다.

TO 옵션과 다른 점은 TO 옵션은 do-group을 수행하기 전에 비교하지만, DOWNTHRU 옵션은 do-group을 수행한 후 비교한다. 따라서 DOWNTHRU 옵션은 do-group을 최소 한 번 이상 수행한다.

REPEAT expression

do-group이 수행된 후 표현식을 계산하여 참조에 저장하고 다시 do-group을 수행한다.

WHILE이나 UNTIL 옵션에 의해 종료되기 전까지 do-group 수행을 반복한다.

Type 4

Type 4는 do-group을 정의하여 do-group 안의 statement를 무한 반복 수행한다.

figure syntax do type4
항목 설명

FOREVER

LOOP와 동의어이다.

LOOP

무한 반복을 정의한다.

반복을 종료하기 위해서는 GOTO 또는 LEAVE statement를 사용하거나 프러시저 또는 프로그램을 종료해야 한다.