COBOL 코볼 EVALUATE 문법(제어문)

코볼에서 CASE 기능으로 사용하는 것은 EVALUATE 이다.


문법은 아래와 같다.

EVALUATE WK-VAL
    WHEN 1
        MOVE 'FIRST' TO WK-RST
    WHEN 2
        MOVE 'SECOND' TO WK-RST
    WHEN OTHER
        MOVE 'OVER' TO WK-RST
END-EVALUATE
WK-VAL 값이 1이면 



EVALUATE WK-VAL
    WHEN 1
    WHEN 2
        MOVE 'OK' TO WK-RST
    WHEN OTHER
        MOVE 'OVER' TO WK-RST
END-EVALUATE


EVALUATE TRUE
    WHEN WK-VAL = 1
        MOVE 'FIRST' TO WK-RST
    WHEN WK-VAL = 2
        MOVE 'SECOND' TO WK-RST
    WHEN OTHER
        MOVE 'OVER' TO WK-RST
END-EVALUATE

EVALUATE TRUE
    WHEN WK-VAL <= 2
        MOVE 'SECOND' TO WK-RST
    WHEN WK-VAL <= 1
        MOVE 'FIRST' TO WK-RST
    WHEN OTHER
        MOVE 'OVER' TO WK-RST
END-EVALUATE

만약, WK-VAL 값이 1인 경우, 위 EVALUATE문에서
첫번째 WHEN 문장만 수행이 될 것인지?
두번째 WHEN 문장도 수행이 될 것인지?
첫번째 WHEN 문장만 수행이 된다.

처음 만나는 WHEN WK-VAL <= 2 조건이 충족하면,
그 WHEN 문 안의 코드
        MOVE 'SECOND' TO WK-RST
이것만 수행이 되고, EVALUATE 문은 끝나게 된다.

두번째 WHEN 인
     WHEN WK-VAL <= 1
        MOVE 'FIRST' TO WK-RST
코는 수행되지 않는다.



EVALUATE
EVALUATE    { identifier-1/ literals-1/TRUE / FALSE / ANY /  condition-1}   
[ ALSO   { identifier-2/ literals-2/TRUE / FALSE / ANY /  condition-2} ]
[ WHEN   identifier-3  무조건문-1 ] …
[ WHEN OTHER 무조건문-2 ]
[ END-EVALUATE ]






Written by dukgun.com

Post a Comment

أحدث أقدم