4

我正在尝试在 Cobol 中使用嵌套的 if 语句。据我所知,我正在遵循样式指南,但不断收到错误消息:

file_name.cob:64:错误:语法错误,意外 ELSE <- 这是第二个 ELSE 语句

该代码的目的是用作凯撒密码,但似乎只有嵌套的 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.

谢谢!

4

1 回答 1

1

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

这些行应显示为:

ADD firstnum, CharCount GIVING stringShift
DISPLAY stringShift
于 2017-01-26T18:17:34.713 回答