1. 조건문 (IF)
1) 참인 경우에만 프로그램 abc를 실행 (IF)
IF COND(&a *EQ &b) THEN CALL PGM(abc)
2) 참인 경우에는 프로그램 abc를, 거짓인 경우에는 xyz를 실행 (IF~THEN~ELSE)
IF COND(&a *EQ &b) THEN CALL PGM(abc)
ELSE CALL PGM(xyz)
3) 첫조건이 참인 경우 abc를, 거짓일 때 두번째 조건을 테스트하여
참이면 ijk를 거짓이면 xyz를 실행 (Nested IF)
IF COND(&a *EQ &b) THEN CALL PGM(abc)
ELSE +
IF COND(&c *EQ &d) THEN CALL PGM(ijk)
ELSE CALL PGM(xyz)
내포(Nested)는 최대 10단계 까지 사용 가능
4) 대소 비교 연산자
*EQ - 같다
*NE - 같지 않다
*GT - 보다 크다
*LT - 보다 작다
*GE - 크거나 같다
*LE - 작거나 같다
*NG - 보다 크지 않다
*NL - 보다 작지 않다
5) 논리 연산자
*AND - 연산자의 양쪽 조건이 모두 참이면 참이된다
*OR - 연산자의 어느 한쪽 조건이 참이면 참이된다
*NOT - 해당값을 부정한다
전체 또는 해당 조건을 괄호로 묶어 사용하며,
괄호는 5중 괄호까지 사용 가능하다.
2. 분기 (GOTO)
1) CL 프로그램 내의 특정 명령으로 분기하고자 할 때 사용한다.
2) CL 이름 명명규칙에 따라 10자리 이내의 이름을 갖고 ':'으로 끝난다.
3) 특정 조건이 참이면 프로그램 종료로 분기할 경우
IF COND(&a *EQ &b) GOTO end_pgm
. . .
end_pgm:
SIGNOFF
ENDPGM
3. 복수명령 수행 (DO, ENDDO)
1) 여러개의 명령을 하나의 그룹으로 묶어서 수행할 때 사용한다.
2) 첫조건이 참이면 프로그램 a1, a2를, 거짓이면 x1, x2를 실행할 경우
IF COND(&a *EQ &b) DO
CALL PGM(a1)
CALL PGM(a2)
ENDDO
ELSE DO
CALL PGM(x1)
CALL PGM(x2)
ENDDO