Sid*_*rth -1 cobol ibm-midrange
例如,什么是输出?
PROCEDURE DIVISION
MAINPARA
DISPLAY "MAIN".
GO TO PARA1.
DISPLAY "DISPLAY".
STOP RUN.
PARA1.
EXIT.
PARA2.
DISPLAY "I AM IN PARA2"
...
Run Code Online (Sandbox Code Playgroud)
它会执行PARA2吗?
我不是一个COBOL程序员,我需要从一个迁移工具/程序,AMXW COBOL理解的代码.目标系统是IBM AS/400.
它将继续PARA2
像你的另一个问题一样.
EXIT
在任何情况下都不会做任何事情.
如果要做任何事情,只有在有人PERFORM
参与时才会这样做.如果PERFORM
涉及到,程序员可能认为EXIT
有某处可以返回.随着GO TO
,哪里会EXIT
去?
退出什么都不做.在任何情况下.
请参见: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
Run Code Online (Sandbox Code Playgroud)
有必须是后发表声明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.
Run Code Online (Sandbox Code Playgroud)
由于PERFORM
范围(THRU
),PERFORM
将以300-PARA-EXIT的最后一个语句结束.为避免编译器诊断,段落必须包含某些内容.什么都不做的事情是EXIT
.
许多人错误地认为CONTINUE
并且EXIT
实际上做了些什么.我有钱说他们没有.
在IBM编译器上EXIT
,这些年来发生了一些变化.它曾经是,EXIT
可能只出现在自己的一个段落.它仍然没有生成代码,但不能互换使用CONTINUE
.放屁!不再是真的.那是我的讽刺.
归档时间: |
|
查看次数: |
61 次 |
最近记录: |