在cobol中嵌套if语句

时间:2013-04-25 16:29:36

标签: if-statement nested cobol gnucobol

我正在尝试在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.

谢谢!

1 个答案:

答案 0 :(得分:1)

我想在这里分享答案,因为它已在comp.lang.cobol google群组中得到解答。这是导致问题的第一个ADD和DISPLAY行之后的两个时期。它现在成功编译。

这些行应显示为:

ADD firstnum, CharCount GIVING stringShift
DISPLAY stringShift