조건과 분기


  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