像這樣你的例子。
abc section.
command a
command b
if a NOT EQUAL TO 4
command c
command d
end-if
.
像這樣發明的東西,但與名稱,以幫助把握事情。
30D-UNPACK-CRATE SECTION.
PERFORM 30DA-COMMON-PER-CRATE
IF NOT STANDARD-CRATE
PERFORM 30DD-NON-STANDARD-CRATE
END-IF
.
或
30D-UNPACK-CRATE SECTION.
PERFORM 30DA-COMMON-PER-CRATE
IF SPECIAL-CRATE
PERFORM 30DD-NON-STANDARD-CRATE
END-IF
.
它使用88級的條件名稱,所以可能是
88 STANDARD-CRATE VALUE "A" THRU "D" "J" "2".
88 SPECIAL-CRATE VALUE "X" "Z".
再次,只是一個例子。
除了你已經在使用SECTIONs的事實(並且如果你有一個SECTION在下一節之前的所有段落屬於那個,所以你不能有單獨的段落),上面可能是SECTION或者是一個SECTION段。不需要PERFORM .... THRU ...或...部分。除了地方標準......和SECTIONs之外,程序是如何編碼的。
退出段落和退出段落。
這些可能或可能不適用於您正在使用的編譯器。
請注意,它們在功能上與GO TO等效,但有一些注意事項,因此用它們替換GO TO將會給出錯誤的...我不知道是什麼,但它是錯誤的。
PERFORM THE-FIRST
THE-FIRST SECTION.
TF-1.
some code
.
TF-2.
some code
.
TF-9.
some code
.
不同的程序:
PERFORM A-PARAGRAPH THRU AP-9
A-PARAGRAPH.
some code
.
AP-1.
some code
.
AP-9.
some code
.
通常你會發現一個節的最後一段只包含EXIT
(並意識到,EXIT
產生任何代碼,它只是一個佔位符)和類似的情況與PERFORM ... THRU ...
。
通常PERFORM ... THRU ...
只會包含兩個段落,但沒有什麼除了說它是這樣的地方標準。
EXIT SECTION
將立即在終止該SECTION的全站/期間之前「轉到」假設的CONTINUE語句。
EXIT PARAGRAPH
將「GO TO」的假定CONTINUE語句之前立即全停止/週期終止
如果EXIT PARAGRAPH
是一款內使用的段,或包含超過一個PERFORM ... THRU ...
的範圍內除了單獨使用EXIT
之外的任何一個段落,它可能不會像作者期望的那樣工作,也不會像下一位讀者期望的那樣工作。
THE-FIRST SECTION.
TF-1.
some code
IF condition
EXIT PARAGRAPH
END-IF
some more code
IF condition
EXIT SECTION
END-IF
some more code
<EXIT PARAGRAPH will arrive here>
.
TF-2.
some code
.
TF-9.
some code
<EXIT SECTION will arrive here>
.
A-PARAGRAPH.
some code
IF condition
EXIT PARAGRAPH (a - just descriptive, not syntax)
END-IF
some more code
<EXIT PARAGRAPH (a) will arrive here>
.
AP-1.
some code
IF condition
EXIT PARAGRAPH (b - just descriptive, not syntax)
END-IF
some more code
<EXIT PARAGRAPH (b) will arrive here>
.
AP-9.
some code
.
所以,如果在一節或與一個以上的段落PERFORM ... THRU ...
使用EXIT PARAGRAPH
含有多單EXIT
等,那麼你正在創建比使用普通GO TO(它是一種潛在的糟糕的情況盲目明顯地表明該分支的預期目的地是什麼),同時使用看起來是「結構化」的構造。
我希望這是一個面試問題。你正在使用哪種編譯器和操作系統? – 2014-10-07 21:17:42