2012-11-06 17 views
2

我完全新的COBOL,我想知道:何時在COBOL中使用點?

似乎有是

DISPLAY "foo" 

DISPLAY "foo". 

什麼點在年底沒有什麼區別一條線實際上做什麼?

什麼時候應該使用/避免它?

回答

5

期限結束「句子」。它可能會影響你的邏輯。考慮...

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

......還有......

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

週期結束如果兩個例子。首先,I-AM-DONE 88級設置有條件,第二級無條件設置。

許多人更喜歡使用顯式範圍終止符,並且只使用單個句點,通常在物理線上,以使其脫穎而出,以結束段落。

5

我從記憶中輸入,所以如果有人有更正,我會很感激。

Cobol 1968要求使用一段時間來結束分區名稱,程序分段名稱或程序分段。每個數據分割元素都以句點結束。

Cobol 68中沒有明確的範圍終止符,如END-IF。一段時間也被用來結束範圍。 1974年的Cobol帶來了一些與時期無關的變化。

Cobol程序員沒有嘗試記住句點的規則,而是傾向於結束Cobol程序中每個句子的句子。

隨着Cobol 1985中引入範圍終止符,Cobol編碼器可以消除程序分段中的大部分時間段。在Cobol 85程序的過程分解中唯一需要的是終止PROCEDURE DIVISION語句,在第一段/段頭之前終止代碼(如果有的話),終止段落/段頭,終止段落/段並終止一個程序(如果沒有段落/部分)。

不幸的是,這嚇壞了編碼爲Cobol 68和74標準的Cobol程序員。到目前爲止,許多Cobol商店都強制執行關於以句號結束每個程序分句的編碼規則。

+2

由於COBOL-85,PROCEDURE DIVISION中唯一需要的'點'是在PARAGRAPH/SECTION標題之前和之後成爲的點。其餘的都會造成麻煩! – NealB

+0

@NealB:謝謝。我已將您的評論添加到我的答案中。 –

4

在哪裏使用!

有2種形式使用點。

您可以在SECTION中的每個VERB之後使用POINT。 示例:

0000-EXAMPLE SECTION。

移動0到WK-1。

PERFORM UNTIL WK-I大於100 DISPLAY WK-I ADD 1 TO WK-I END-PERFORM。

DISPLAY WK-I。

IF WK-I EQUAL ZEROS DISPLAY WK-I END-IF。

0000-EXAMEPLE-END。出口。

注意,我們使用的每一個點動詞後,除非裏面演出,IF等..

另一種形式使用的是:只使用一個點節結束,喜歡這裏:

0000-EXAMPLE SECTION。

MOVE 0 TO WK-I

PERFORM UNTIL WK-I大於100 DISPLAY WK-I ADD 1 TO WK-I END-PERFORM

DISPLAY WK-I

IF WK-I EQUAL ZEROS DISPLAY WK-I END-IF

。 < ========點這裏!!!!!!!只有這裏!

0000-EXAMEPLE-END。出口。

,但我們總有退出,後段.....

+1

問題是關於*何時使用它*,而不是選項是什麼。 –

1

當它是我的選擇,我用句號/期只在必要的。但是,地方標準通常會另行規定:就這樣吧。

由於完全停止/週期造成的問題是在代碼「with」被複制到代碼「without」而編碼器的大腦被安全地留在停車場時,意外製造無條件的事情。

需要注意的一點是(希望)在IBM Mainframe Cobol中使用下一個SENTENCE的「舊」程序。 「下一句」意思是「在下一個完整句號/句號之後」,其中「稀疏的句號/句號」是該段/段的結尾。意外等待發生。獲取規格更改以允許將「下一個句子」更改爲「繼續」。