对 COBOL 中二维数组的声明感到困惑

Confused with the declaration of 2D arrays in COBOL

因此,假设我有一个包含 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-BWS-D是什么。如果我想创建一个像我提到的那样的数组(10 x 3),我该怎么做?

谢谢

首先,COBOL 本身没有数组,它有 tables。没办法做个二维的table。您给出的示例实际上是您可以获得的最接近的示例(嵌套 table)。如果我遇到你遇到的问题(一个有姓名、性别和年龄的 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