5

私は COBOL にまったく慣れていないので、疑問に思っています。

の間に違いはないようです

DISPLAY "foo"

DISPLAY "foo".

行末のドットは実際に何をしますか?

いつ使用/回避する必要がありますか?

4

5 に答える 5

10

期間は「文」を終了します。それはあなたの論理に影響を与える可能性があります。検討...

IF A = B
    PERFORM 100-DO
    SET I-AM-DONE TO TRUE.

...と...

IF A = B
    PERFORM 100-DO.
    SET I-AM-DONE TO TRUE

両方の例で、期間はIFを終了します。最初に、I-AM-DONE 88レベルが条件付きで設定され、2番目に無条件に設定されます。

多くの人は、明示的なスコープターミネータを使用し、段落を終了するために、多くの場合、それ自体を目立たせるために物理的な行で1つのピリオドのみを使用することを好みます。

于 2012-11-06T12:24:30.363 に答える
7

記憶をたどって書いているので、どなたか訂正していただけると助かります。

COBOL 1968 では、部名、手続き部の段落名、または手続き部の段落を終了するためにピリオドを使用する必要がありました。各データ分割要素はピリオドで終了します。

Cobol 68 には、END-IF のような明示的なスコープ ターミネータはありませんでした。スコープを終了するためにピリオドも使用されました。Cobol 1974 では、生理とは関係のないいくつかの変更が行われました。

ピリオドの規則を覚えようとするのではなく、COBOL プログラマーは COBOL プログラムのすべての文をピリオドで終わらせる傾向がありました。

COBOL 1985 でのスコープ終了記号の導入により、COBOL コーダーは手続き部のパラグラフ内のほとんどのピリオドを削除できました。COBOL 85 プログラムの手続き部で必要なピリオドは、PROCEDURE DIVISION ステートメントの終了、最初の段落/セクション ヘッダーの前のコード (存在する場合) の終了、段落/セクション ヘッダーの終了、段落/セクションの終了だけです。プログラムを終了します(段落/セクションがない場合)。

残念なことに、これは、Cobol 68 および 74 標準に従ってコーディングした Cobol プログラマーを驚かせました。今日に至るまで、多くの COBOL ショップは、すべての手続き部文をピリオドで終了するというコーディング規則を実施しています。

于 2012-11-06T14:07:37.133 に答える
4

使う場所!

ポイントのご利用方法は2つあります。

SECTION 内のすべての VERB の後に POINT を使用できます。例:

0000-例のセクション。

0 を WK-I に移動します。

WK-I が 100 を超えるまで実行 WK-I WK-I END-PERFORM に 1 を追加。

WK-I を表示します。

IF WK-I EQUAL 0 表示 WK-I END-IF。

0000-EXAMEPLE-END。出口。

PERFORM、IF、ETC内を除いて、すべての動詞の後にポイントを使用していることに注意してください...

使用する別の形式は次のとおりです。次のように、セクションの終わりで 1 つのポイントのみを使用します。

0000-例のセクション。

0 を WK-I に移動

WK-I が 100 を超えるまで実行 WK-I WK-I に 1 を追加 END-PERFORM

ディスプレイ WK-I

IF WK-I EQUAL 0 表示 WK-I END-IF

. <========ここを指しなさい!!!!!!! ここだけ!

0000-EXAMEPLE-END。出口。

しかし、常に EXIT と SECTION の後にあります.....

于 2012-12-08T12:46:52.727 に答える
1

それが私の選択である場合、必要な場合にのみピリオド/ピリオドを使用します。ただし、現地の基準では、そうではない場合がよくあります。

終止符/ピリオドによって引き起こされる問題は、コーダーの脳が安全に駐車場に残されている間に、コード「あり」がコード「なし」にコピーされたときに、無条件の何かが偶発的に作成されることにあります。

注意すべきもう 1 つの点は、(できれば) IBM Mainframe Cobol で NEXT SENTENCE を使用する「古い」プログラムです。「NEXT SENTENCE」は「次の終止符/ピリオドの後」を意味し、「まばらな終止符/ピリオド」コードでは段落/セクションの終わりです。アクシデントが待ち受けています。「NEXT SENTENCE」を「CONTINUE」に変更できる仕様変更を入手。

于 2013-01-19T23:55:56.640 に答える