【问题标题】:Nested if statements in cobolcobol 中的嵌套 if 语句
【发布时间】:2013-04-25 16:29:36
【问题描述】:

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

file_name.cob:64:错误:语法错误,意外的 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.

谢谢!

【问题讨论】:

  • 只是想在这里分享答案,因为它在 comp.lang.cobol google 组中得到了回答。这是导致问题的第一条 ADD 和 DISPLAY 行之后的两个时期。现在编译成功了。
  • 我建议放一个 '.'在每个过程结束时单独一行(必需)。然后在你的程序中搜索流浪的'.'。有些会让你找到流浪的'。在程序部门。在大型机 ISPF 编辑器中,命令字符串 X all; F '。'全部; X ' 。 ' 都将在程序分区中显示错误位置的点。

标签: if-statement nested cobol gnucobol


【解决方案1】:

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

这些行应该显示为:

ADD firstnum, CharCount GIVING stringShift
DISPLAY stringShift

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多