Cobol 使用“转到”循环
我需要在COBOL中编写一个“for循环”,而不使用“PERFORM…”。。。通过……结构。我的想法是添加一个段落,一旦满足某些条件,我就可以跳回到该段落。以下是我的想法:Cobol 使用“转到”循环,cobol,Cobol,我需要在COBOL中编写一个“for循环”,而不使用“PERFORM…”。。。通过……结构。我的想法是添加一个段落,一旦满足某些条件,我就可以跳回到该段落。以下是我的想法: PROGRAM-BEGIN. PAR-A. IF I <= 10 THEN SET J TO 1 PAR-B. IF J <= 10 THEN DISPLAY
PROGRAM-BEGIN.
PAR-A.
IF I <= 10 THEN
SET J TO 1
PAR-B.
IF J <= 10 THEN
DISPLAY ARRAY(I,J)
SET J UP BY 1
GO TO PAR-B
END-IF.
SET I UP BY 1
GO TO PAR-A
END-IF.
PROGRAM-DONE.
PROGRAM-BEGIN。
标准杆。
如果我这就是你对现有结构的需求。您尚未显示I
的初始化,但需要一个。您试图避免明确的终止条件/转到
PROGRAM-BEGIN.
SET I TO 1
PAR-A.
IF I <= 10 THEN
SET J TO 1
ELSE
GO TO PROGRAM-DONE
END-IF
.
PAR-B.
IF J <= 10 THEN
DISPLAY ARRAY(I,J)
SET J UP BY 1
GO TO PAR-B
END-IF
SET I UP BY 1
GO TO PAR-A
.
PROGRAM-DONE.
好了,不是更好吗
从一开始,写下你的名字。使用描述性名称。我和J简直是哑巴,在一些奇妙的情况下,你甚至会把它们和数字1混淆
SET first-level-index
second-level-index TO 1
.
output-results.
IF second-level-index
NOT GREATER THAN 10
DISPLAY
">"
the-data
( first-level-index
second-level-index )
"<"
SET second-level-index UP BY 1
GO TO output-results
END-IF
IF first-level-index
NOT GREATER THAN 10
SET second-level-index TO 1
SET first-level-index UP BY 1
GO TO output-results
END-IF
.
设置一级索引
二级索引为1
.
输出结果。
IF二级索引
不大于10
展示
">"
数据
(一级指标)
二级索引)
""
数据
(一级指标)
二级索引)
“修复由于将段落名称放入
在if语句中,可以使用GOTO将PARB段落移出第一个if语句:
PROGRAM-BEGIN.
PAR-A.
IF I <= 10 THEN
SET J TO 1
GOTO PAR-B
END-IF
PAR-B.
IF J <= 10 THEN
DISPLAY ARRAY(I,J)
SET J UP BY 1
GO TO PAR-B
END-IF.
SET I UP BY 1
GO TO PAR-A
PROGRAM-DONE.
PROGRAM-BEGIN。
标准杆。
如果我在ItBig.Fig.Load中间去PAR-B。两个缺失的完全停止/句号。为什么当PAR-B紧跟<代码> > 时,为什么<代码> Goto PAR-B/<代码>(应该是“代码> >……/代码>”?对于<代码> i <代码>没有初始值,所以不要期望它甚至能工作。
set-up-for-loop.
SET first-level-index TO 1
.
outer-loop.
SET second-level-index TO 1
.
inner-loop.
IF second-level-index
NOT GREATER THAN 10
DISPLAY
">"
the-data
( first-level-index
second-level-index )
"<"
SET second-level-index UP BY 1
GO TO inner-loop
END-IF
IF first-level-index
NOT GREATER THAN 10
SET first-level-index UP BY 1
GO TO outer-loop
END-IF
.
PROGRAM-BEGIN.
PAR-A.
IF I <= 10 THEN
SET J TO 1
GOTO PAR-B
END-IF
PAR-B.
IF J <= 10 THEN
DISPLAY ARRAY(I,J)
SET J UP BY 1
GO TO PAR-B
END-IF.
SET I UP BY 1
GO TO PAR-A
PROGRAM-DONE.