Arrays 与COBOL中的2D数组声明相混淆

Arrays 与COBOL中的2D数组声明相混淆,arrays,cobol,Arrays,Cobol,让我们假设我有一个由10个学生组成的文件,有3个字段:姓名、性别、年龄。因此,理论上,我想创建一个10×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个学生组成的文件,有3个字段:姓名、性别、年龄。因此,理论上,我想创建一个10×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乘3),我该如何创建呢


谢谢

首先,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).
在本例中,我将使用一个下标来访问我为student创建的字段。这就是显示它们的循环的样子:

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

首先,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).
在本例中,我将使用一个下标来访问我为student创建的字段。这就是显示它们的循环的样子:

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

我懂了。但是,如果我们要使用这些“表格”,那么如果我想知道第六名学生的年龄,比如说(没有循环)?@Huzo-
将WS-age(6)移动到…
我明白了。但是,如果我们要使用这些“表格”,那么如果我想知道第六名学生的年龄,例如(不循环)?@Huzo-
将WS-age(6)移动到…