2014-11-03 15 views
-1

例如,輸出是什麼?如何去流動行爲/工作,如果PARA只有EXIT語句

PROCEDURE DIVISION 
    MAINPARA 
     DISPLAY "MAIN". 
     GO TO PARA1. 
     DISPLAY "DISPLAY". 
     STOP RUN. 

    PARA1. 
     EXIT. 

    PARA2. 
     DISPLAY "I AM IN PARA2" 
    ... 

它會執行PARA2嗎?

我不是COBOL程序員,我需要理解遷移工具/過程AMXW COBOL中的代碼。目標系統是IBM AS/400。

+0

如果您告訴我們您正在使用的COBOL編譯器和您正在使用的操作系統,那將非常好。你爲什麼不能自己嘗試這樣簡單的事情? – 2014-11-03 07:10:09

+0

@BillWoodger我不是COBOL程序員,所以我對此沒有太多的想法但是我處理COBOL,我需要澄清這個問題:( – Siddharth 2014-11-03 07:18:33

+0

但是,你處理的是什麼樣的COBOL?它不能只是一個隨機的。您可能不是COBOL程序員,但有人需要知道哪個COBOL和哪個操作系統,以及爲什麼您繼續將RPG作爲標籤。 – 2014-11-03 07:35:03

回答

5

它將持續到PARA2就像您的其他問題。

EXIT什麼也不做,在任何情況下。

如果要做任何事情,只有當涉及到PERFORM時纔會這樣做。如果涉及PERFORM,程序員可能認爲EXIT有某處可以返回。用GO TOEXIT會去哪裏?

退出什麼都不做。在任何情況下。

在這裏看到:https://www.ibm.com/developerworks/community/forums/html/topic?id=4f9b202f-fba2-4802-8d61-8e31aef22d0e&ps=25

我假設你有一個IBM Midrage COBOL,你不停地標記與RPG的COBOL的問題。 https://www.ibm.com/developerworks/community/forums/html/topic?id=4f9b202f-fba2-4802-8d61-8e31aef22d0e&ps=25

上面的鏈接描述了CONTINUE的情況,但當前IBM編譯器中的CONTINUE和EXIT具有相同的功能(沒有生成代碼),這裏也有解釋。

那麼EXIT和CONTINUE會做什麼?他們都是「無操作」的聲明,但他們必須有一些用途?

他們是爲我們。如果我們沒有我們可以使用的聲明,或者提醒自己我們期望發生的事情,我們就會使用它們。

例如,如果站點標準不允許在IF使用否定的,你可能會看到這一點:

IF A EQUAL TO B 
    CONTINUE 
ELSE 
    Do some stuff... 
END-IF 

必須IF後的聲明,但你其實不願意做任何事。使用CONTINUEIF現在將編譯並按照您的要求運行。

你還可以看到這樣的事情:

PERFORM 300-PARA THRU 300-PARA-EXIT 

    ... 

300-PARA. 

    ... 

    IF some-condition 
     GO TO 300-PARA-EXIT 
    END-IF 

    ... 

300-PARA-EXUT. 
    EXIT. 

因爲PERFORM範圍(在THRU)的PERFORM將與300-PARA-EXIT的最後一條語句結束。爲了避免編譯器診斷,段落必須包含某些內容。什麼都不做的是EXIT

很多人錯誤地認爲CONTINUEEXIT實際上做了一些事情。我有錢說,他們沒有。

在IBM編譯器上,多年來EXIT發生了一些變化。它曾經是EXIT可能只有自己出現在一個段落。它仍然不生成代碼,但不能與CONTINUE交替使用。放屁!不再是真的。這是我的諷刺。

+0

謝謝..我明白了。只需跳過不需要的代碼 – Siddharth 2014-11-03 07:55:11

+1

@Siddharth轉到''GO TO'從不需要,但是在使用時,它只是用於跳過代碼,就像其他任何具有「轉到」的語言一樣。 – 2014-11-03 08:02:59

+0

非常感謝你.. :) – Siddharth 2014-11-03 08:16:13