【发布时间】: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