像这样你的例子。
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