cobol里的EVALUATE作用就相当于switch语句。
当然EVALUATE里面可以嵌套IF语句,也可以嵌套EVALUATE语句。
但是需要注意的是EVALUATE语句遇到终止符就会认为这个EVALUATE块结束了。
cobol里面语法的终止符是【.】,一个小句点儿。
举个例子:
EVALUATE CD
WHEN 1 MOVE 'OK' TO RTNCD
WHEN 2 MOVE 'NG' TO RTNCD
WHEN OTHER MOVE 'NA' TO RTNCD
EVALUATE TRUE
WHEN A1= 2 MOVE 'NG' TO RTNCD
WHEN A1= 3 MOVE 'NG' TO RTNCD
END-EVALUATE. 这里会编译错误。原因是编译器会认为EVALUATE CD这个块结束了。
END-EVALUATE.
里面嵌套if语句也是一样的,不能有终止符【.】,直到最外面的END-EVALUATE,中间都不能有终止符。