例如输出是什么?
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 :(得分:5)
与其他问题一样,它会继续PARA2
。
EXIT
都不会做任何事情。
如果要做任何事情,只有在涉及PERFORM
时才会这样做。如果涉及PERFORM
,程序员可能会认为EXIT
有某处可以返回。使用GO TO
,EXIT
会去哪里?
退出没有任何作用。在任何情况下。
我假设你有一个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
之后的声明,但您实际上并不想做任何事情。使用CONTINUE
,IF
现在将完全按照您的需要进行编译和运行。
您还会看到以下内容:
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
。
许多人错误地认为CONTINUE
和EXIT
实际上有所作为。我有钱说他们没有。
在IBM编译器上,EXIT
多年来发生了一些变化。过去,EXIT
只能出现在一个段落中。它仍然没有生成代码,但无法与CONTINUE
互换使用。放屁!不再是真的。那是我的讽刺。