4

Cobol でネストされた if ステートメントを使用しようとしています。私が知る限り、スタイルガイドに従っていますが、エラーが発生し続けます:

file_name.cob:64: エラー: 構文エラー、予期しない ELSE <- これは 2 番目の 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.

ありがとう!

4

1 に答える 1

1

comp.lang.cobol google group で回答されたので、ここで回答を共有したかっただけです。問題を引き起こしたのは、最初の ADD 行と DISPLAY 行の後の 2 つのピリオドでした。これで正常にコンパイルされます。

行は次のように表示されます。

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