【发布时间】:2019-11-18 12:34:46
【问题描述】:
下午好, 我正在分析 COBOL 中的一些遗留代码,并发现了这个我无法理解的特定案例。
000610 IF EIBCALEN = 0 00061011
000700 EXEC CICS 00070000
000800 SEND MAP('TCHM144') 00080007
001100 END-EXEC. 00110000
001110 ELSE 00111013
001111 IF EIBAID = DFHCLEAR OR DFHPF2 OR DFHPF3 00111113
001112 EXEC CICS SEND FROM(WS-CHAR) 00111213
001113 LENGTH(LENGTH OF WS-CHAR) 00111313
001114 ERASE 00111413
001115 END-EXEC. 00111513
001116 EXEC CICS RETURN END-EXEC. 00111613
001120* MAPONLY ERASE FREEKB 00112002
001200 EXEC CICS 00120000
001300 RETURN TRANSID('TCE4') 00130000
001400 END-EXEC. 00140000
001500 GOBACK. 00150012
据我回忆,IF 语句的主体中有一个句点将句子关闭到最高级别的 IF,但在这种情况下,IF 主体中包含的 END-EXEC 后面跟着一个句点,该句点紧随其后上述逻辑将关闭句子,ELSE 不会被引用到任何 IF。我是正确的还是有特定的情况可以这样做?谢谢。
【问题讨论】:
-
如果其中一个答案是正确的,请标记它(打勾/复选标记)以帮助未来的用户。
标签: if-statement cobol cics