我正在尝试在Cobol中使用嵌套的if语句。据我所知,我遵循风格指南,但一直收到错误:
file_name.cob:64:错误:语法错误,意外的ELSE < - 这是第二个ELSE语句
代码的目的是作为Caesar密码运行,但它似乎只是产生错误的嵌套if语句。我尝试将嵌套语句放在初始IF语句的ELSE子句之后,但这也不成功。
编辑:我正在使用open-cobol,并使用'-free'选项进行编译
IF CharCount < 26
ADD firstnum, CharCount GIVING stringShift.
DISPLAY stringShift.
IF FUNCTION MOD(stringShift, 26) IS NOT ZERO
MOVE FUNCTION MOD(stringShift, 26) to stringShift
DISPLAY stringShift
MOVE abc(stringShift:stringShift) TO newChar
DISPLAY newChar
STRING newString DELIMITED BY "", newChar DELIMITED BY SIZE INTO newString
DISPLAY newString
ELSE
STRING newString DELIMITED BY "", searchChar DELIMITED BY SIZE INTO newString
DISPLAY newString
END-IF
ELSE
STRING newString DELIMITED BY "", searchChar DELIMITED BY SIZE INTO newString
DISPLAY newString
END-IF.
谢谢!
答案 0 :(得分:1)
我想在这里分享答案,因为它已在comp.lang.cobol google群组中得到解答。这是导致问题的第一个ADD和DISPLAY行之后的两个时期。它现在成功编译。
这些行应显示为:
ADD firstnum, CharCount GIVING stringShift
DISPLAY stringShift