因此,假设我有一个文件,其中包含10位学生,其中包括3个字段:姓名,性别,年龄。因此,从理论上讲,我想创建一个10 x 3的数组。
但是当涉及到COBOL时,此示例将创建二维表:
01 WS-TABLE.
05 WS-A OCCURS 10 TIMES.
10 WS-B PIC A(10).
10 WS-C OCCURS 5 TIMES.
15 WS-D PIC X(6).
在此示例中,我无法理解WS-B
和WS-D
是什么。如果我想创建一个我提到的数组(10 x 3),我该怎么做?
谢谢
答案 0 :(得分:4)
首先,COBOL实际上没有数组,它有表。无法制作二维表。您给出的示例实际上是您可以获得的最接近的示例(嵌套表)。如果我遇到了您遇到的问题(一个由10名学生组成的姓名,性别和年龄的字段),我将按以下方式构建数据:
01 WS-TABLE.
05 WS-STUDENT OCCURS 10 TIMES.
10 WS-NAME PIC X(10).
10 WS-GENDER PIC X.
10 WS-AGE PIC 9(3).
在此示例中,我将使用下标访问为学生创建的字段。因此,这是一个将它们全部显示出来的循环:
PERFORM VARYING WS-X
FROM 1 BY 1
UNTIL WS-X > 10
DISPLAY "NAME: " WS-NAME(WS-X) " GENDER: " WS-GENDER(WS-X) " AGE: " WS-AGE(WS-X)
END-PERFORM