Arrays 与COBOL中的2D数组声明相混淆
让我们假设我有一个由10个学生组成的文件,有3个字段:姓名、性别、年龄。因此,理论上,我想创建一个10×3的数组。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。如果我想创建一个像我提到的那样的数组(
但对于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)移动到…